使用模板
假定你的PDF文档中经常用一些数学表达式,例如下面的勾股定律公式:
32 + 42 = 52
如果你想用PDFCreator绘制,不是完全不可以,但是要用时间和脑力堆砌。
我们可以学习Word报表或Excel报表的思路,用HTML写出这个公式:
[A]2 + [B]2 = [C]2
然后在绘制前,用实际的数值替换[A]、[B]、[C]即可。
这段公式的HTML源码是:
<p>3<sup>2</sup> + 4<sup>2</sup> = 5<sup>2</sup></p>
你可以保存在一个文本文件中,或者复制到自己的代码中直接使用。
示例
Dim
file As
String
= "c:\temp\test.pdf"
Dim pdc
As
New
PDFCreator()
pdc.ConformanceLevel = Pdf.PdfAConformanceLevel.PdfA1b
'使用PDF/A格式提高兼容性
Dim rect
As
RectangleF = pdc.PageRectangle()
rect.Inflate( - 72, - 72)
Dim formula
As
String
= "<p>3<sup>2</sup> +
4<sup>2</sup> = 5<sup>2</sup></p>"
'HTML模板
Dim fnt
As
New
Font("微软雅黑",
12)
pdc.DrawString("HTML模板示例",
fnt, Brushes.Black, rect)
rect.Offset(0, 25)
Dim x
As
Integer
= 3, y As
Integer
= 4 , z As
Integer
= 5
Dim tmp
As
String
= formula.Replace("[A]",
x).Replace("[B]",
y).Replace("[C]",
z) '内容替换
pdc.DrawStringHTML(tmp, fnt, Brushes.red, rect)
'用DrawStringHTML绘制
pdc.Save(file)
Process.Start(file)
在命令窗口执行后,生成的文档为:
提示:
复杂网页的渲染本就存在很多兼容性问题,DFCreator作为一个小工具,难以像真正的浏览器一样完美渲染网页,所以建议只有确实用PDFCReator难以实现的格式问题,才考虑用模板的思路解决。