2017-08-25 3 views
0

J'ai créé un fichier Excel avec Apache POI. Et maintenant j'ai besoin de le convertir en PDF. Je veux utiliser iText, mais je veux copier la cellule fusionnée, les styles, etc du fichier Excel au format PDF.Convertir Excel en PDF - Java en utilisant iText

Comment puis-je y parvenir? Parce que l'exemple de code que j'ai trouvé sur le Web: PDF to Excel using iText and Apache POI est bon mais ne copie pas les cellules fusionnées, les styles.

Des idées? Merci beaucoup !

Répondre

3

Si vous utilisez iText, il est préférable d'utiliser iText7. C'est la dernière version de iText, et une correction de bugs importante a été faite (en particulier pour les tables). Cela étant dit, quand je regarde l'exemple, il semble que l'exemple ne fait que répéter sur toutes les cellules et les ajoute à un objet Table iText.

La même chose peut être faite avec iText7. Vous créez une table avec la quantité appropriée de colonnes, puis ajoutez des cellules à elle.

Votre question (en ce qui me concerne) se résume à "comment puis-je style des cellules de table iText".

Ceci est un exemple de code qui génère simplement une table. J'ai indiqué où vous pouvez styler le contenu de la table.

public static void main(String[] args) throws Exception { 
    File file = new File(DEST); 
    file.getParentFile().mkdirs(); 
    manipulatePdf(DEST); 
} 

public static void manipulatePdf(String dest) throws Exception { 
    PdfDocument pdfDoc = new PdfDocument(new PdfWriter(dest)); 
    Document doc = new Document(pdfDoc); 

    Table table = new Table(8); 
    for (int i = 0; i < 16; i++) { 
     Paragraph para = new Paragraph("hi"); 
     // now you can use methods like: 
     // para.setFont() 
     // para.setFontColor() 
     // para.setFontSize() 
     table.addCell(para); 
    } 
    doc.add(table); 

    doc.close(); 
} 

Découvrez plus d'exemples à http://developers.itextpdf.com/content/itext-7-examples/itext-7-tables

+1

Pour ajouter sur la réponse de Joris: on fait tout simplement pas "styles de copie" à partir d'Excel. * Vous * définissez le style vous-même, et * vous * décidez quoi et comment. Vous avez besoin du POI d'Apache pour lire les styles Excel, puis effectuez le travail vous-même pour le traduire dans les instructions iText 'setFont' /' setFontColor'/'setFontSize' correspondantes. –

+0

@Joris et comment je peux fusionner des cellules? http://developers.itextpdf.com/examples/tables/colspan-and-rowspan -> exemple d'ici n'est pas bon ... – Ady96

+0

Pouvez-vous expliquer pourquoi l'exemple n'est pas bon? Aussi, parlez-vous de la fusion de cellules dans l'entrée ou dans la sortie? –