html转PDF, 内容被换行

版本:23.8
编程语言:java

问题截图:

原html文件:
新建文本文档 (2).zip (937 字节)

转换后的PDF:
toPdf2.zip (77.1 KB)

转换代码:

	public static void main(String[] args) throws Exception {

		Document doc = new Document(new FileInputStream("C:\\Users\\admin\\Desktop\\新建文本文档 (2).html"));
		try {
			NodeCollection childNodes = doc.getChildNodes(NodeType.PARAGRAPH, true);
			if (childNodes != null) {
				for (Paragraph para : (Iterable<Paragraph>) childNodes) {
					if (para.getListFormat().isListItem()) {
						ListLevel listLevel = para.getListFormat().getListLevel();
						listLevel.getFont().setColor(Color.BLACK);
						if (para.getParagraphFormat().getStyleIdentifier() == StyleIdentifier.HEADING_2) {
							listLevel.setNumberStyle(NumberStyle.ARABIC);
							listLevel.setNumberFormat("\u0001.\u0001、");
						}
						if (para.getParagraphFormat().getStyleIdentifier() == StyleIdentifier.HEADING_3) {
							listLevel.setNumberStyle(NumberStyle.ARABIC);
							listLevel.setNumberFormat("\u0001.\u0001.\u0002、");
						}
						if (para.getParagraphFormat().getStyleIdentifier() == StyleIdentifier.HEADING_4) {
							listLevel.setNumberStyle(NumberStyle.ARABIC);
							listLevel.setNumberFormat("\u0001.\u0001.\u0002.\u0003、");
							listLevel.getFont().setSize(10.5);
							listLevel.getFont().setBold(true);
							listLevel.getFont().getShading().clearFormatting();
						}
					}
				}
			}
		} catch (Exception e) {
			logger.warn("html转换word,处理样式异常", e);
		}
		FileOutputStream fileOutputStream = new FileOutputStream("C:\\Users\\admin\\Desktop\\toPdf2.pdf");
		doc.updateListLabels();
		doc.save(fileOutputStream, SaveFormat.PDF);

	}

@ZhonghaoSun html 文件中的元素位置不正确,导致在 html 文件中显示的内容不正确。

如果我们像 Aspose.Words 那样将其规范化,那么 html 内容看起来就会与 PDF 文件一样。

因此,我认为在这种情况下没有任何问题。

如果在浏览器中直接查看html文件,是没有换行的。

@ZhonghaoSun 是的,但出现这种情况是因为 HTML 标记的位置不正确。遗憾的是,我们对这种行为无能为力。Aspose.Words 模型可与 MS Word 文档一起使用,如果您将内容放在""标签中,然后用 MS Word 打开,内容将以同样的方式显示,并显示新行。

好的,能否通过调整html内容来避免换行呢

@ZhonghaoSun 您可以尝试使用以下代码:

<div style="width: 800px;">
	<p style="font-family: Microsoft YaHei, STXihei, Simhei; display: inline;">
		<span>维森集团有限公司(签章)</span>
		<span style="color: white; font-size: 1px;">3259462223402755011</span>
		<span style='mso-spacerun:yes'>                </span>
		<span>武凯璇(签字)</span>
		<span style="color: white; font-size: 1px;">3259462223797019593</span>
	</p>
</div>