gpt4 book ai didi

java - 从 HTML 转换为 PDF 时定义页面大小

转载 作者:行者123 更新时间:2023-12-02 13:29:12 25 4
gpt4 key购买 nike

我正在尝试将 html 转换为 pdf 文档,使用 aspose Words for java。 (版本为17.4.0)

我的问题是:如何设置 html 中的页面大小和页边距?

documentation听起来我必须设置该部分(div-element)的宽度、高度和边距。

我的 html 看起来像这样:

<!DOCTYPE html>
<html>

<head>
<title>Hello PDF</title>
</head>

<body>
<div class="page" style="width:210mm; height:297mm; margin-top:0cm; margin-bottom:1cm; margin-left:1cm; margin-right:1cm;">
<p>Hello World</p>
</div>
</body>

</html>

我的java代码:

String baseUri = "path/to/doc/";

LoadOptions loadOptions = new LoadOptions();
loadOptions.setEncoding(Charset.forName("UTF-8"));
Document doc = new Document(baseUri + "test.html", loadOptions);

OutputStream outputStream = new FileOutputStream(baseUri + "test.pdf");
doc.save(outputStream, SaveFormat.PDF);

我的问题是生成的 pdf 的页面尺寸为 215,9 x 279,4mm(而不是 210 x 297mm),并且顶部边距也不为 0。

谁能告诉我如何在我的 html 中定义这个值?

最佳答案

请注意,Aspose.Words 模仿与 MS Word 相同的行为。您的页面设置在 HTML 中很好。如果您在 MS Word 中加载输入的 html 并将其转换为 PDF,它也会生成页面大小为 215,9 x 279,4mm 的文档。

但是,您可以根据您的要求使用 Aspose.Words API 更改部分的页面设置,如下所示。

我是 Tilal,Aspose 的开发者传播者。

String baseUri = "path/to/doc/";

LoadOptions loadOptions = new LoadOptions();
loadOptions.setEncoding(Charset.forName("UTF-8"));
com.aspose.words.Document doc = new com.aspose.words.Document(baseUri +"test.html", loadOptions);

for (Section sectoin : doc.getSections())
{
PageSetup ps = sectoin.getPageSetup();
ps.setPaperSize(PaperSize.A4);
ps.setTopMargin(0.0);
ps.setBottomMargin(1.0);
ps.setLeftMargin(1.0);
ps.setRightMargin(1.0);

}

OutputStream outputStream = new FileOutputStream(baseUri +"Test.pdf");
doc.save(outputStream, com.aspose.words.SaveFormat.PDF);

关于java - 从 HTML 转换为 PDF 时定义页面大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43252550/

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