【发布时间】:2013-05-10 12:08:05
【问题描述】:
在对缺乏可以直接在 pdf 上绘图的免费软件感到非常恼火之后,我决定自己编写它。
我的目标是通过在 GUI 中使用某种画布小部件来实现这一点,并在其下方显示 pdf 的内容,并记录(和渲染)绘制到屏幕上的所有内容,并在保存文件时将绘制的所有内容保存为.png(具有透明背景)并将其覆盖到 .pdf 上。
我已经编写了覆盖 pdf 的内容(使用 iText),但我不确定如何处理 GUI 内容。我应该如何继续渲染pdf? 我见过一种方法,涉及将 .pdf 的页面转换为图像(PDF 渲染器)并在 Swing 中处理,但我想这会出现分辨率问题(缩放)。
我的另一个想法是使用 JPedal 的 Viewer 小部件在 swing 元素中呈现 .pdf,但我不确定如何设置画布。
那么,我应该如何处理呢?
我的界面的一般结构应该是什么?
我没有尝试过这些选项中的任何一个(我仍在调查他们的库接口)。我想尽早寻求建议(因为它是关于程序的基本结构)。
【问题讨论】:
-
缺少免费软件直接绘制到 pdf 上,我拍到了黑暗 == 绘制到 JLayer(Java6 的 JXLayer)或 GlassPane,然后从 JFrame.getRootPane/ContentPane 创建 BufferedImage 或使用Screen Image @camickr 直接
-
GlassPane 听起来不错(我可以把它放在 Viwewer 上)。关于将鼠标单击/拖动实际转换为 GlassPane 上的绘图的任何建议?
-
GlassPane(必须放置任何 JComponent,然后)默认为 consume() 所有 MouseEvents,如果需要,必须将 KeyEvents(将 KeyListener 添加到放置的任何 JComponent)consume()
-
使用JLayer,更好,新API,新方法,更易管理
-
JLayer 看起来不错。嗯,我对查看器小部件有一个错误的印象;它允许您将他们的 pdf 应用程序嵌入到我不想要的 swing 程序中(以及所有菜单栏等等)。我应该如何渲染pdf? (做图像的事情?)
标签: java swing pdf itext jpedal