在Itext中使用XMLWorkerHelper时未设置图像宽度和高度

时间:2013-11-11 11:40:48

标签: java pdf-generation itext xmlhelper

您好我正在尝试将图片添加到我的pdf中。它已被添加,但问题是我无法设置用户定义的宽度和高度。我正在使用XMLWorkerHelper转换HTML代码并将其写为PDF格式。

try {
String image="<img alt=\"Not Loading\" src=\"C:\\Users\\sathesh_S\\Desktop\\Itext\\football.jpg\" style=\"width: 50px; height: 75px\" />";    
OutputStream file = new FileOutputStream(new File("C:\\Test.pdf"));
Document document = new Document();
PdfWriter writer = PdfWriter.getInstance(document, file);
document.open();
InputStream is = new ByteArrayInputStream(image.getBytes());
XMLWorkerHelper.getInstance().parseXHtml(writer, document, is);
document.close();
file.close();
}
catch (Exception e) 
{
e.printStackTrace();
}

这里我将宽度和高度设置为50和75像素。但原始图像正在添加到PDF中。我怎么能纠正这个。

1 个答案:

答案 0 :(得分:3)

XMLWorker不支持图像[1]上的宽度和高度css属性。

默认图像标记处理器(即com.itextpdf.tool.xml.html.Image)使用标记的宽度/高度属性。所以有两种解决方案:

  1. 为图像编写自己的图像标记处理器(可能还有CssAplier)(请参阅librabry源代码了解详细信息),或者只是:
  2. 使用img标签的高度和宽度属性,例如:

    String image="<img src=\"football.jpg\" width=\"50px\" height=\"75px\"/>";
    
  3. 第二种解决方案更容易,在大多数情况下应该足够了。

    [1] http://demo.itextsupport.com/xmlworker/itextdoc/CSS-conformance-list.htm