itext for pdf:如何输出<pre> code snippet</pre>

时间:2010-10-28 17:07:38

标签: pdf itext

该行自动打印到paragaph的下一行。如何保持预先格式化

 line 1
 line 2
 line 3

我试图从Paragraph类中找到答案,没有运气。

有人能帮忙吗?

感谢。

2 个答案:

答案 0 :(得分:0)

让我们看看HTMLWorker如何处理“pre”...它将面部设置为Courier,并设置“isPre”标志。

text(String str)中,HTMLWorker将对换行符,空格,制表符等进行一些过滤... UNLESS isPre设置,在这种情况下,'str'直接传递到一个块并添加到当前段落。

所以看起来你只需要保存你的空格,“\ n”,等等,在分析你的输入时。

new chunk( "foo\n\n bar\n baz\n qux" )应显示为:

foo

  bar
  baz
  qux




PS:你的问题并不是那么清楚,所以我很可能会回答你提出的问题。样本代码不会出错。

答案 1 :(得分:0)

html文件包含<pre>标记,您希望以pdf格式保留其格式。 尝试

String fileAsOneBigStr = FileUtils.readFileToString(new File    
("aFileName"), "UTF-8"); //FileUtils comes from import 
                         //org.apache.commons.io.FileUtils;  
Pattern p = Pattern.compile("(?i)<pre>(.*)</pre>");
Matcher m = p.matcher(fileAsOneBigStr);
StringBuffer sb = new StringBuffer();
while (m.find()) {
    String line = m.group(1) + "<br/>";
    m.appendReplacement(sb, line);
}
m.appendTail(sb);
String strToBePassedToITextPdf = sb.toString();

希望这有帮助。如果您找到更好的解决方案,请告诉我(simsamsara3@gmail.com)