C:\Users\Administrator\Desktop\Delphi\CreatePdf
[记录一下]pdfium中文乱码(2ccc论坛的问题) - 秋·风 - 博客园
将PDFium.pas的TPdf.AddText 函数中:
TextObject:=FPDFPageObj_NewTextObj(Document,FPDF_BYTESTRING(AnsiString(Font)),FontSize); 注释掉,修改为:
procedure TPdf.AddText(const Text, Font: WString; FontSize: Single; X, Y: Double; Color: TColor; Alpha: Byte);
varTextObject: FPDF_PAGEOBJECT;fontStream:TMemoryStream;ARGB: FPDF_DWORD;dFont:FPDF_FONT;
beginCheckPageActive;fontStream:= TMemoryStream.Create;fontStream.LoadFromFile('c:\Windows\fonts\simhei.ttf'); // 宋体字体文件名称dFont:=FPDFText_LoadFont(Document,fontStream.Memory,fontStream.Size,FPDF_FONT_TRUETYPE,1);TextObject:=FPDFPageObj_CreateTextObj(Document, dFont, FontSize);FreeAndNil(fontStream);
// TextObject := FPDFPageObj_NewTextObj(Document, FPDF_BYTESTRING(AnsiString(Font)), FontSize);CheckPdf(TextObject <> nil, 'Cannot create text object');CheckPdf(FPDFText_SetText(TextObject, FPDF_WIDESTRING(WideString(Text))) <> 0, 'Cannot set text');ARGB := ColorToARGB(Color, Alpha);CheckPdf(FPDFPageObj_SetFillColor(TextObject, FPDF_GetRValue(ARGB), FPDF_GetGValue(ARGB), FPDF_GetBValue(ARGB), FPDF_GetAValue(ARGB)) <> 0, 'Cannot set color');FPDFPageObj_Transform(TextObject, 1, 0, 0, 1, X, Y);FPDFPage_InsertObject(Page, TextObject);UpdatePage;
end;
生成pdf中文demo源码(lazarus):
unit Unit1;{$mode objfpc}{$H+}interfaceusesClasses, SysUtils, Forms, Controls, Graphics, Dialogs,PDFium;type{ TForm1 }TForm1 = class(TForm)Pdf1: TPdf;procedure FormCreate(Sender: TObject);privatepublicend;varForm1: TForm1;implementation{$R *.lfm}{ TForm1 }procedure TForm1.FormCreate(Sender: TObject);
var Annotation: TPdfAnnotation;
begintryPdf1.CreateDocument;Pdf1.AddPage(1, 400, 300);Pdf1.CreatePath(20, 20, fmAlternate, clYellow, $FF, True, clBlack, $FF, 0.5);Pdf1.LineTo(20, 280);Pdf1.LineTo(380, 280);Pdf1.LineTo(380, 20);Pdf1.ClosePath;Pdf1.AddPath;Pdf1.CreatePath(40, 60, fmWinding, clGreen, $FF, True, clWhite, $FF, 2.0);Pdf1.BezierTo(100, 120, 200, 120, 200, 220);Pdf1.MoveTo(40, 60);Pdf1.BezierTo(100, 120, 100, 220, 200, 220);Pdf1.AddPath;Pdf1.CreatePath(200, 80, fmWinding, clRed, $FF, True, clWhite, $FF, 1.0);Pdf1.LineTo(340, 80);Pdf1.LineTo(270, 180);Pdf1.ClosePath;Pdf1.AddPath;Pdf1.AddText(utf8toansi('测试中文abcd'), '宋体', 20, 70, 50);// Pdf1.AddPicture(Image.Picture, 320, 220);//ZeroMemory(@Annotation, SizeOf(Annotation));Annotation.AuthorText := 'Author';Annotation.ContentsText := 'Hello!';Annotation.Subtype := anText;Annotation.Rectangle.Left := 270;Annotation.Rectangle.Top := 60;Annotation.Rectangle.Right := 280;Annotation.Rectangle.Bottom := 50;Pdf1.CreateAnnotation(Annotation);Pdf1.SaveAs('document.pdf');finallyPdf1.Active := False;end;end;end.
生成的PDF可以显示中文了:

这个解决方案的缺点是生成的PDF嵌入字体,生成的PDF较大。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1215016.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!相关文章
球迷效应与流量博弈:U23亚洲杯中国队决赛之路的隐性逻辑
球迷效应与流量博弈:U23亚洲杯中国队决赛之路的隐性逻辑
北京时间2026年1月24日深夜,沙特吉达阿卜杜拉费萨尔王子体育城体育场,随着主裁判终场哨响,U23亚洲杯决赛以中国队0-4不敌日本队落幕。亚军战绩创下中国男足国字号球队自20…
k8s 安装headlamp
dashboard因为贡献值过少,已经推荐使用headlamp
https://github.com/kubernetes-sigs/headlamp 文档:https://headlamp.dev/docs/latest/installation/desktop/linux-installation/#appimage
[adminlocalhost root]$ kubectl describe po my-headlamp…
一种智能VIP乘梯系统方案,采用多模态身份认证(IC卡/二维码/人脸识别)实现VIP专属服务。方案包含两种实施路径:经济型仅管控外呼,安全型增加轿厢二次验证,支持权限分级、冲突消解和故障回滚且兼容电梯
本文提出了一种智能VIP乘梯系统方案,采用多模态身份认证(IC卡/二维码/人脸识别)实现VIP专属服务。系统通过DAIC-DT-VIP模块进行权限验证,由DAIC-TK-QK控制器优先调度电梯,响应时间≤3秒。方案包含两种实施路径…
MATLAB仿真Gough-Stewart平台六自由度机构运动控制
MATLAB仿真 gough-stewart平台六自由度机构运动控制,通过运动学实现控制运动,求解正运动学、逆运动学,力学分析,求解关节角度,并联机器人运动学分析,运动学运动控制,运动模拟仿真最近一直在研究…
学习 Flutter for OpenHarmony 的前置 Dart 语言:高级特性实战笔记(下)
学习 Flutter for OpenHarmony 的前置 Dart 语言:高级特性实战笔记(下) 这里写目录标题 学习 Flutter for OpenHarmony 的前置 Dart 语言:高级特性实战笔记(下)🌟 从基础到进阶,Trae…
“开源AI大模型AI智能名片S2B2C商城小程序”视角下的教育用户策略研究 - 详解
pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …
Device (PCI0)是PCI设备因为this device have a _HID of PNP0A03----ACPI!IsPciDeviceWorker注释里面有判断PCI设备的条件
Device (PCI0)是PCI设备因为this device have a _HID of PNP0A03----ACPI!IsPciDeviceWorker注释里面有判断PCI设备的条件 1: kd> g Breakpoint 39 hit eax8985e010 ebx8985e000 ecx00008004 edx00002707 esif743a928 edif743a934 eipf741d710 espf791ad38 ebpf791ad4c iopl…
C#多线程工业源码:超强大的工控解决方案
C#多线程工业源码,可技术咨询 0, 纯源代码。 1, 替代传统plc搭载的触摸屏。 2, 工控屏幕一体机直接和plc通信。 3, 功能强大,多级页签。 4, 可以自由设定串口或以太网通信。 5, 主页。 6, 报警页。 7,触摸键盘模拟输入。 8, 系统设定页。 9, …
电商九大核心模块业务实体与生命周期全解
本文是《复杂电商业务梳理实战指南》的补充篇,我们将深入解析除商品模块外的八大核心业务模块,详细定义每个模块的业务实体、生命周期和关键状态节点。这是构建企业级数据仓库的核心元数据基础。 为什么需要清晰的业务实体定义?
在数据仓库设…
2026年市面上有实力的包装袋定制厂家排行榜,聚酯尼龙袋/四边封包装袋/自立袋/自立拉链袋,包装袋生产厂家找哪家
行业趋势与采购痛点:包装袋定制如何实现“效率+品质”双赢?
随着消费升级与电商渗透率提升,包装袋行业正从“标准化生产”向“定制化、柔性化”转型。数据显示,2025年我国包装袋市场规模突破1800亿元,其中定制化需…
2026直膨空调机组选购:国内优质企业推荐,分布式适应动力模块/防爆直膨式空调机组,空调机组制造企业联系电话
在当前的空调市场中,直膨式空调机组因其高效、节能、安装便捷等优点,受到了众多用户的青睐。随着市场需求的不断增长,国内直膨式空调机组企业也如雨后春笋般涌现。然而,市场上产品质量参差不齐,如何选择一家质量可…
《数据密集型应用系统设计》笔记
第一章 可靠性、可伸缩性、可维护性
现今很多应用程序都是数据密集型(data-intensive),而非计算密集型(compute-intensive)。因此CPU很少成为这类应用的瓶颈,更大的问题通常来自数据量、数据复杂性、以及数据的变…
Java毕设项目:基于springboot的社区诊所在线挂号与排队系统(源码+文档,讲解、调试运行,定制等)
博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…
机器学习三大流派:监督、无监督与强化学习
拆解机器学习的三大支柱:监督学习、无监督学习与强化学习
1. 前言:机器是如何“学会”的?
在人工智能的浪潮中,我们经常听到“模型训练”这个词。但机器毕竟不是人类,没有大脑神经元,它是如何从一堆冰冷的…
【课程设计/毕业设计】基于springboot智能在线预约挂号系统基于springboot的社区诊所在线挂号与排队系统【附源码、数据库、万字文档】
博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…
Java计算机毕设之基于springboot的诊所预约挂号系统社区诊所在线挂号与排队系统(完整前后端代码+说明文档+LW,调试定制等)
博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…
【毕业设计】基于springboot的社区诊所在线挂号与排队系统(源码+文档+远程调试,全bao定制等)
博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…
“土木人转行软件测试学习第3天”-黑盒测试方法论-边界值分析法
黑盒测试方法论边界值分析法:最常用于规定了取值范围或规定了值个数里面边界值的确定上点:边界上的点例:【0,100】大于等于0小于100,其中0跟100就是边界点离点:离上点最近的点如果是闭区间离点必须在输入域的范围…
2025年必看!台灯品牌排行大公开,好台灯选它不踩雷!课桌椅/教室灯/教育照明/黑板灯/落地灯/台灯,台灯供应商怎么选
随着教育照明需求升级与健康光环境理念普及,台灯行业正经历从基础照明向智能化、健康化转型的关键阶段。消费者对台灯的需求已从单一照明功能延伸至护眼效果、智能控制、场景适配等综合体验。然而,市场品牌鱼龙混杂,…
