PDFViewer控件

Foxtable 2025增加了一个PDFViewer控件,用于在直接窗口中浏览PDF文档。

PDFViewer可以浏览PDFCreator生成的文档,无需保存为文件,只需直接将其SourceDocument属性设置为PDFCreator对象即可:

Dim pdc As New PDFCreator()
pdc.ConformanceLevel = Pdf.PdfAConformanceLevel.PdfA1b
'使用PdfA1b格式,须在添加所有内容之前设置。
Dim
rect As RectangleF = pdc.PageRectangle()
rect.Inflate( - 72, - 72)

Dim
fnt As New Font("微软雅黑", 12)
pdc.DrawString(
"Hello 狐表!", fnt, Brushes.Black, rect)
e.Form.Controls(
"PDFViewer1").SourceDocument = pdc '显示生成的内容

提示:如果文档有中文字符,则必须使用PdfA/B格式, 且必须在添加内容之前设置好,否则可能无法显示中文。

也可以用LoadFromFile方法加载显示已经生成好的文档:

e.Form.Controls("PDFViewer1").LoadFromFile("c:\temp\nwind.pdf")

需要注意的是,如果是第三方PDF文档,且没有嵌入字体(PdfA/B格式),则可能无法正常显示文档中的中文。

PDFViewer的属性有:

属性/方法 说明
StatusBarVisible 是否显示状态栏
RibbonVisible 是否显示工具栏

例如只想显示PDF文档,不想显示工具栏和状态栏:

Dim pdc As New PDFCreator()
pdc.ConformanceLevel = Pdf.PdfAConformanceLevel.PdfA1b
pdc.DrawString(
"Hello Foxtable!", New Font("微软雅黑", 12), Brushes.Black, New RectangleF(72, 72, 100, 50))
Dim
pv As WinForm.PDFViewer = e.Form.Controls("PDFViewer1")
pv.SourceDocument = pdc
pv.RibbonVisible =
False
p
v.StatusBarVisible = False

ContextMenuElements 用于获取快捷菜单命令
RibbonElements

用于获取工具栏命令。

例如希望禁止工具栏和快捷菜单中的打印、导出、复制等命令:

Dim pdc As New PDFCreator()
pdc.DrawString(
"Hello Foxtable!", New Font("微软雅黑", 12), Brushes.Black, New RectangleF(72, 72, 100, 50))
Dim
pv As WinForm.PDFViewer = e.Form.Controls("PDFViewer1")
pv.SourceDocument = pdc
pv.RibbonElements.CopyText.Enabled =
False '禁用工具栏中的复制文本命令
pv.RibbonElements.Export.Enabled =
False '禁用工具栏中的导出命令
pv.RibbonElements.Print.Enabled =
False '禁用工具栏中的打印命令
pv.ContextMenuElements.CopyText.Enabled =
False '禁用快捷菜单中的复制文本命令

命令有很多,编写代码的时候会自动列出所支持的命令,且命令名称是自我描述性的,这里就不一一介绍了。

ExecuteAction 执行命令。

例如你希望在窗口中加一个打印按钮,用于打印PDF文档,按钮代码为:

Dim pv As WinForm.PDFViewer = e.Form.Controls("PDFViewer1")
pv.ExecuteAction(PDFActions.Print)
'执行打印命令

需要注意的是,如果你禁用了打印按钮:

pv.RibbonElements.Export.Enabled = False

那么ExecuteAction执行打印命令是无效的,但你可以 隐藏打印按钮:

pv.RibbonElements.Export.Visible = False

或者隐藏整个工具栏:

pv.RibbonVisible = False

其他命令也一样,如果你要通过ExecuteAction执行之, 则不能禁用(Enabled = False)它,但可以隐藏(Visible = False)它

PDFActions包括所有命令,请自行探索。


本页地址:http://www.foxtable.com/webhelp/topics/6124.htm