gpt4 book ai didi

java - 用 Java 打印 HTML 文件

转载 作者:行者123 更新时间:2023-11-30 03:45:53 25 4
gpt4 key购买 nike

我需要从我的 Java 应用程序打印 HTML 文件。我尝试了几种方法。其中两个正在工作,但没有达到预期。

方法一:

问题:打印件在四分之三的纸张后被裁切。

try {
PrinterJob printJob = PrinterJob.getPrinterJob();

PageFormat pageFormat = new PageFormat();
pageFormat.setOrientation(PageFormat.LANDSCAPE);

Paper paper = new Paper(); // Set to A4 size.
paper.setSize(594.936, 841.536); // Set the margins.
paper.setImageableArea(0, 0, 594.936, 841.536);
pageFormat.setPaper(paper);

XHTMLPanel panel = new XHTMLPanel();
panel.setDocument(new File("./documents/" + "Personalstamm"
+ ".html"));

printJob.setPrintable(new XHTMLPrintable(panel), pageFormat);
if (printJob.printDialog()) {

printJob.print();
}
} catch (Exception x) {
x.printStackTrace();
}

方法2:

问题:打印输出没有在 HTML 文件中设置样式表。

    PageFormat pageFormat = new PageFormat();
Paper a4paper = new Paper();
double paperWidth = 8.26;
double paperHeight = 11.69;
a4paper.setSize(paperWidth * 72.0, paperHeight * 72.0);

/*
* set the margins respectively the imageable area
*/
double leftMargin = 0.78; /* should be about 2cm */
double rightMargin = 0.78;
double topMargin = 0.78;
double bottomMargin = 0.78;

a4paper.setImageableArea(leftMargin * 72.0, topMargin * 72.0,
(paperWidth - leftMargin - rightMargin) * 72.0, (paperHeight
- topMargin - bottomMargin) * 72.0);
pageFormat.setPaper(a4paper);
pageFormat.setOrientation(PageFormat.LANDSCAPE);

DocumentRenderer documentRenderer = new DocumentRenderer(pageFormat,
"Report");
try {
FileInputStream stringReader = new FileInputStream(new File(
"./documents/" + "Personalstamm" + ".html"));
HTMLEditorKit htmlKit = new HTMLEditorKit();
HTMLDocument htmlDoc = (HTMLDocument) htmlKit
.createDefaultDocument();

htmlKit.read(stringReader, htmlDoc, 0);
documentRenderer.print(htmlDoc);
} catch (Exception x) {
x.printStackTrace();
}

有人知道如何用这些方法之一解决问题吗?或者有人有更好的方法从 Java 打印文件吗?

最佳答案

您无法使用 CSS 打印 HTML。最好的办法是使用 PDF,这就是它们的用途。使用 Java 从 HTML 创建 PDF 并打印它

关于java - 用 Java 打印 HTML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25719924/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com