由于缺乏直接在pdfs上绘制的免费软件而非常生气,我决定自己编写。
我的目标是通过在GUI中使用某种画布小部件来实现这一点,并在其下方显示pdf的内容,并记录(和渲染)绘制到屏幕上的所有内容,并在保存文件时保存绘制的所有内容。 .png(透明背景)并将其叠加到.pdf上。
我已经编写了覆盖pdf的内容(使用iText),但我不确定如何处理GUI内容。我该如何处理渲染pdf? 我已经看到了一种方法,包括将.pdf的页面转换为图像(PDF渲染器)并将其放入Swing中,但我想这会有分辨率问题(缩放)。
我的另一个想法是使用JPedal的Viewer小部件在swing元素中渲染.pdf,但我不确定如何设置画布。
那么,我该如何处理呢? 我的界面的一般结构应该是什么? 我没有尝试过这些选项(我还在调查他们的库接口)。我想早点寻求建议(因为它是关于程序的基本结构)。
答案 0 :(得分:0)
渲染PDF非常复杂。我们开发ABCpdf,我猜我们在渲染方面可能有四十多年的投资。
因此,如果你想这样做,你应该从限制你需要做的事情开始。要么您需要确保您的PDF来自使用一组有限功能的统一来源,要么您需要接受许多PDF无法正确呈现。
接下来,您需要解压缩页面内容流,然后将其分解为PDF运算符。然后创建一个System.Drawing.Bitmap或类似的,并使用每个PDF绘图操作符在该绘图表面上绘制。您可以在Adobe网站上找到PDF规范中的运算符的完整详细信息。
如果您的PDF来源一致,简单和统一,您可能会在几周内得到明智的信息。快乐的编码: - )