转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件开发 >> Delphi程序 >> 正文
Fastreport3.14的中文PDF输出         ★★★★

Fastreport3.14的中文PDF输出

作者:闵涛 文章来源:闵涛的学习笔记 点击数:3532 更新时间:2009/4/23 18:26:28
        WriteLn(Stream, ''''/FirstChar '''' + IntToStr(FirstChar));
        WriteLn(Stream, ''''/LastChar '''' + IntToStr(LastChar));
        GetMem(pwidths, SizeOf(ABCArray));
        Write(Stream, ''''/Widths ['''');
        GetCharABCWidths(b.Canvas.Handle, FirstChar, LastChar, pwidths^);
        for i := 0 to (LastChar - FirstChar) do
          Write(Stream, IntToStr(pwidths^[i].abcA + Integer(pwidths^[i].abcB) + pwidths^[i].abcC) + '''' '''');
        WriteLn(Stream, '''']'''');
        FreeMem(pwidths);
        WriteLn(Stream, ''''>>'''');
        WriteLn(Stream, ''''endobj'''');
        Parent.XRefAdd(Stream);
        WriteLn(Stream, IntToStr(Index + 1 + Parent.FStartFonts) + '''' 0 obj'''');
        WriteLn(Stream, ''''<<'''');
        WriteLn(Stream, ''''/Type /FontDescriptor'''');
        WriteLn(Stream, ''''/FontName /'''' + FontName);
        WriteLn(Stream, ''''/Flags 32'''');
        WriteLn(Stream, ''''/FontBBox ['''' + IntToStr(pm^.otmrcFontBox.Left) + '''' '''' + IntToStr(pm^.otmrcFontBox.Bottom) + '''' '''' + IntToStr(pm^.otmrcFontBox.Right) + '''' '''' + IntToStr(pm^.otmrcFontBox.Top) + '''' ]'''');
        WriteLn(Stream, ''''/ItalicAngle '''' + IntToStr(pm^.otmItalicAngle));
        WriteLn(Stream, ''''/Ascent '''' + IntToStr(pm^.otmAscent));
        WriteLn(Stream, ''''/Descent '''' + IntToStr(pm^.otmDescent));
        WriteLn(Stream, ''''/Leading '''' + IntToStr(pm^.otmTextMetrics.tmInternalLeading)); //NEW
        WriteLn(Stream, ''''/CapHeight '''' + IntToStr(pm^.otmTextMetrics.tmHeight));
        WriteLn(Stream, ''''/XHeight '''' + IntToStr(pm^.otmsXHeight)); //NEW
        WriteLn(Stream, ''''/StemV '''' + IntToStr(50 + Round(sqr(pm^.otmTextMetrics.tmWeight / 65))));
        WriteLn(Stream, ''''/AvgWidth '''' + IntToStr(pm^.otmTextMetrics.tmAveCharWidth)); //NEW
        WriteLn(Stream, ''''/MaxWidth '''' + IntToStr(pm^.otmTextMetrics.tmMaxCharWidth)); //NEW
        WriteLn(Stream, ''''/MissingWidth '''' + IntToStr(pm^.otmTextMetrics.tmAveCharWidth)); //NEW
        if Parent.FEmbedded then
          WriteLn(Stream, ''''/FontFile2 '''' + IntToStr(Index + 2 + Parent.FStartFonts) + '''' 0 R'''');

        WriteLn(Stream, ''''>>'''');
        WriteLn(Stream, ''''endobj'''');
      end;

      if Parent.FEmbedded then
      begin
        Parent.XRefAdd(Stream);
        WriteLn(Stream, IntToStr(Index + 2 + Parent.FStartFonts) + '''' 0 obj'''');
        i := GetFontData(b.Canvas.Handle, 0, 0, nil, 1);
        GetMem(pfont, i);
        i := GetFontData(b.Canvas.Handle, 0, 0, pfont, i);
        MemStream := TMemoryStream.Create;
        MemStream.Write(pfont^, i);
        MemStream1 := TMemoryStream.Create;
        frxDeflateStream(MemStream, MemStream1, gzMax);
        WriteLn(Stream, ''''<< /Length '''' + IntToStr(MemStream1.Size) + '''' /Filter /FlateDecode /Length1 '''' + IntToStr(MemStream.Size) + '''' >>'''');
        WriteLn(Stream, ''''stream'''');
        Stream.CopyFrom(MemStream1, 0);
        MemStream1.Free;
        MemStream.Free;
        FreeMem(pfont);
        WriteLn(Stream, '''''''');
        WriteLn(Stream, ''''endstream'''');
        WriteLn(Stream, ''''endobj'''');
      end;
    except
    end;
  finally
    FreeMem(pm);
    b.Free;
  end;
end;

上一页  [1] [2] [3] [4] 


[聊天工具]遭Adobe反对 Office 2007被迫放弃PDF支持  [常用软件]AdobePDF存在危急漏洞殃及IE浏览器
[常用软件]CHM转换为PDF文件好轻松  [常用软件]ABC Amber CHM Converter:CHM转换PDF
[JAVA开发]Java如何操作Word,Excel,PDF文档?  [JAVA开发]Java抽取Office、PDF的四件兵器
[电脑技术]简单小技巧教你把PDF文档看个清清楚楚  [电脑技术]编辑PDF文档得力工具Foxit PDF Editor
[Sql Server]T-SQL 存储过程创建 PDF 格式文件(报表)  
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · C语言系列  · VB.NET程序
    · JAVA开发  · Delphi程序
    · 脚本语言
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台