3

我正在使用飞碟和 itext 将 html 转换为 pdf,为了以垂直方向编写文本,我尝试了简单的 css:

style="writing-mode: tb-rl";

浏览器的变换旋转:

transform: rotate(270deg)!important;  
-ms-transform:rotate(270deg); /* IE 9 */
-moz-transform:rotate(270deg); /* Firefox */
-webkit-transform:rotate(270deg); /* Safari and Chrome */
-o-transform:rotate(270deg); /* Opera */
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
progid:DXImageTransform.Microsoft.Matrix(sizingMethod='auto expand', M11=0.7071067811865476, M12=-0.7071067811865475, M21=0.7071067811865475, M22=0.7071067811865476); /* IE6,IE7 */
-ms-filter: "progid:DXImageTransform.Microsoft.Matrix(SizingMethod='auto expand', M11=0.7071067811865476, M12=-0.7071067811865475, M21=0.7071067811865475, M22=0.7071067811865476)"; /* IE8 */

但是没有成功... :(

同一个人知道如何使用飞碟和 itext 旋转 html 文本?

提前致谢 :)

4

3 回答 3

2

我一直在做一些挖掘工作。在 FlyingSaucer 用户论坛上,似乎尚不支持 transform 属性。但是它应该更容易实现,因为它不会影响布局。

如果您对挖掘源代码不感兴趣,您可以实现一个替换元素来接收数据,转换为 SVG 并在您的布局中使用它。以下是条形码类似用法的几个示例。http://andreas.haufler.info/2012/12/generating-barcodes-in-pdfs-with-flying.html

这里还有另一个代码示例 - Using Flying Saucer to Render Images to PDF In Memory

当您的整个应用程序都是 Java 时,使用像 PhantomJS 这样的浏览器引擎支持的库可能并不理想。

于 2017-03-30T06:04:10.197 回答
0

据我所知,这是不可能使用飞碟的,您可以尝试使用 PhantomJS,这是一种从 HTML 到 PDF 的更可靠的方法。要与 java 集成,您可以运行 webserver 模块并通过 HTTP 请求将您的请求发送到 PhantomJS。

于 2014-07-21T19:00:02.437 回答
0

我们有同样的问题。最终在 java 中创建了一个带有旋转文本的图像,并将图像作为 base64 编码字符串插入到 html 中。这很糟糕,但它有效

于 2017-07-19T13:08:37.113 回答