我有发票的文档规范,其中一个元素垂直显示文本。像这样:
H 123 Elm St
O PO Box 1
M Anytown, ST
E USA
我尝试使用css转换来旋转文本,使其侧向读取。我还尝试使用列宽为1的表,然后使用不同列中的地址。在浏览器中,它可以正确呈现。当我通过ITextRenderer运行它时,它不会包装字符(我在每个字符之间使用空格,因此它应该换行)。我在转换后尝试了这个并且旋转产生了相同的结果。
我也试过了表格布局:固定; css设置,没有运气。我最终得到了这个:
答案 0 :(得分:0)
Flyingsaucer不支持css transform
属性。
但是将文本放在一个窄列中的选项应该可行。
以下是一个例子:
<html>
<head>
<style>
td{border:1px solid blue}
.first{width:5mm;}
</style>
</head>
<body>
<table>
<tr>
<td class="first">H O M E</td>
<td>
123 Elm StO<br />
PO Box 1<br />
Anytown, ST<br />
USA
</td>
</tr>
</table>
</body>
</html>
我使用飞碟9.1,java代码是:
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import org.xhtmlrenderer.pdf.ITextRenderer;
import com.lowagie.text.DocumentException;
public class StackOverflow {
public static void main(String[] args) throws IOException, DocumentException {
String in = "so1.html";
String out = "so1.pdf";
File f = new File(in);
String url = f.toURI().toURL().toString();
createPDF(url, out);
}
public static void createPDF(String url, String pdf) throws IOException, DocumentException {
try (OutputStream os = new FileOutputStream(pdf)) {
ITextRenderer renderer = new ITextRenderer();
renderer.setDocument(url);
renderer.layout();
renderer.createPDF(os);
}
}
}