0

我使用飞碟创建了一个 PDF,它在打开时会显示一个打印对话框。这是我为此编写的代码:

String inputFile = "firstdoc.xhtml";
String url = new File(inputFile).toURI().toURL().toString();
String outputFile = "firstdoc.pdf";

OutputStream os = new FileOutputStream(outputFile);

ITextRenderer renderer = new ITextRenderer();
renderer.setDocument(url);
renderer.layout();
renderer.createPDF(os);

os.close();

PdfReader reader = new PdfReader(outputFile);
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream("firstdocprint.pdf"));
stamper.setPageAction(PdfWriter.PAGE_OPEN, new PdfAction(PdfAction.PRINTDIALOG), 1); 
stamper.close();

当我在 PC 上打开 PDF 时,几秒钟后会显示打印对话框。

但是,当我将 PDF 嵌入到隐藏的 iframe 中时...

<iframe src="firstdocprint.pdf" style="display:none"></iframe>

...最初呈现页面时,PDF 打印对话框永远不会出现。

隐藏的 iframe 方法正在处理一个非常简单的“测试”PDF。我希望“firstdocprint.pdf”打印对话框会在几秒钟内出现,并且 PDF 只有 2KB(简单的“TEST”PDF 只有 1KB)。

有没有办法以编程方式加速 PDF 打印对话框的呈现?

4

1 回答 1

0

看起来有几件事让我加快了速度......

  • 删除未使用/失效的打印机
  • 不使用"display:none",而是使用非常小的宽度和高度渲染 iframe:
    <iframe src="firstdocprint.pdf" style="width:2px;height:2px;"></iframe>
    我想我也可以将它绝对定位在页面之外的某个位置,或者用另一个元素覆盖它
于 2012-03-13T15:27:53.253 回答