【问题标题】:Perform printing and saving job sequentially依次执行打印和保存作业
【发布时间】:2012-08-04 05:02:22
【问题描述】:

我必须打印一张账单。账单设计是使用 Java Graphics2D 进行的,账单的某些部分是使用从 Java Applet 的 JTextFields 检索文本来填写的。它工作正常。但是我还需要做的是,我必须将整个打印输出的副本(不仅仅是JTextFields 的内容)保存为pdf。出于测试打印输出中文本对齐的目的,我在Print 对话框中使用PDFXChange 4.0 将其保存为pdf。但我不能总是做 2 项工作 - 首先使用 PDFExchange 保存它,然后在打印机中打印出来。请指导我如何使用 Java 一次性实现这一目标。

【问题讨论】:

  • 我会这样做 1) 将 PDF 保存到本地磁盘。 2) 致电Desktop.print(the.pdf)。这不仅是您要避免的事情,而且与您当前正在做的事情相反。 OTOH,将两者结合起来的用例是什么? “我不能总是做 2 份工作” 嗯.. 你不必这样做,它是代码,或者更确切地说是 JVM,它是“做两件事”。如果涉及安全提示,这可能会导致用户“做两件事”,但同样不是你,而是用户。至于代码,您可能必须编写两个方法,但那是一次,而不是“总是”。
  • @AndrewThompson 好的,先生。但是,你能说得更清楚更准确一点吗?
  • 你会放一些你试过的代码吗?

标签: java swing pdf printing


【解决方案1】:

我可能会尝试使用 iText 之类的方法将 Graphics2D 直接发送到 PDF

例如,结帐How do I draw graphics to PDF using iText?

您必须自己处理分页。

或者,您可以将每个页面保存到一个图像中(使用 ImageIO API)并将每个图像插入到 PDF 中

【讨论】:

  • 先生,感谢您的想法。我下载了itext 5.3.1。它是一个 zip 文件,包含 10 个文件并解压缩到 jdk 1.6.0 的 lib 文件夹中。并将 lib 文件夹添加为系统变量中的 CLASSPATH。但是,当我运行该程序时,对于所有其他软件包,我也同样收到错误 package com.itextpdf.text does not exist。为什么先生?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-10-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-07
  • 1970-01-01
相关资源
最近更新 更多