0

在对缺乏直接在 pdf 上绘图的免费软件感到非常恼火之后,我决定自己编写它。

我的目标是通过在 GUI 中使用某种画布小部件来实现这一点,并在其下方显示 pdf 的内容,并记录(并渲染)绘制到屏幕上的所有内容,并在保存文件时,将绘制的所有内容保存为 .png(具有透明背景)并将其覆盖到 .pdf 上。

我已经写了覆盖 pdf 的东西(使用 iText),但不知道如何处理 GUI 的东西。我应该如何继续渲染pdf?我见过一种方法,涉及将 .pdf 的页面转换为图像(PDF 渲染器)并在 Swing 中处理,但我想这会出现分辨率问题(缩放)。

我的另一个想法是使用 JPedal 的 Viewer 小部件在 swing 元素中呈现 .pdf,但我不确定如何设置画布。

那么,我应该如何处理呢?
我的界面的一般结构应该是什么?
我没有尝试过这些选项中的任何一个(我仍在调查他们的库接口)。我想尽早寻求建议(因为它是关于程序的基本结构)。

4

1 回答 1

0

渲染 PDF 非常复杂。我们开发 ABCpdf,我猜我们可能在渲染方面投入了 40 多年。

所以如果你想这样做,你应该从限制你需要做的事情开始。要么您需要确保您的 PDF 来自使用一组受限功能的统一来源,要么您需要接受您的许多 PDF 将无法正确呈现。

接下来,您需要解压缩页面内容流,然后将其分解为 PDF 运算符。然后创建一个 System.Drawing.Bitmap 或类似的,并使用每个 PDF 绘图运算符在该绘图表面上绘图。您将在 Adob​​e 网站上提供的 PDF 规范中找到运算符的完整详细信息。

如果您的 PDF 源是一致的、简单的和统一的,您可能会在几周内得到一些有意义的东西。快乐编码:-)

于 2013-05-13T10:39:58.457 回答