2010-10-28 10 views
1

La ligne est automatiquement imprimée sur la ligne suivante pour un paragraphe. Comment garder le préformaté tel qu'il ressemble àitext pour pdf: comment sortir <pre> code snippet</pre>

 line 1 
line 2 
line 3 

J'ai essayé de trouver la réponse dans la classe Paragraph, sans succès.

Quelqu'un pourrait-il aider?

merci.

Répondre

0

Voyons comment HTMLWorker gère "pré" ... Il définit le visage à Courier, et définit un drapeau "isPre". Dans text(String str), HTMLWorker fera un peu de filtrage sur les retours à la ligne, les espaces, les tabulations, etc. A moins que isPre ne soit défini, auquel cas 'str' est passé directement dans un bloc et ajouté au paragraphe courant. Il semble donc que vous ayez simplement besoin de conserver vos espaces, "\ n" s, et ainsi de suite, lors de l'analyse de votre entrée.

new chunk("foo\n\n bar\n baz\n qux") doit apparaître comme:

 
foo 

    bar 
    baz 
    qux 




PS: Votre question n'a pas été si clair que cela, il est donc tout à fait possible que je réponds à autre chose que ce que vous avez demandé. Vous ne pouvez pas vous tromper avec un exemple de code.

0

Un fichier html contient <pre> tag et vous souhaitez conserver son format au format pdf. Essayez

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(); 

Hope this aide. Si vous trouvez une meilleure solution s'il vous plaît faites le moi savoir ([email protected])

Questions connexes