2017-08-25 26 views
0

私はApache POIでExcelファイルを作成しました。 そして今私はそれをPDFに変換する必要があります。 私はiTextを使いたいですが、マージされたセルやスタイルなどをExcelファイルからpdfにコピーします。ExcelをPDFに変換する - iTextを使用してJavaを使用する

どうすればこの問題を解決できますか? Web上で見つけたコードサンプルはPDF to Excel using iText and Apache POIですが、マージされたセル、スタイルはコピーされません。

アイデア?どうもありがとうございました !

答えて

3

iTextを使用する場合は、iText7を使用することをお勧めします。これはiTextの最新バージョンであり、実質的なバグ修正が行われています(特にテーブルの場合)。

これまで説明したように、例を見ると、例のようにすべてのセルを繰り返してiText Tableオブジェクトに追加するように見えます。

iText7でも全く同じことができます。適切な量​​の列を持つ表を作成し、それにセルを追加します。

あなたの質問(私が懸念している限り)は、 "どのようにiTextテーブルセルをスタイルすることができますか"になります。

これは、テーブルを生成するサンプルコードです。私はあなたがテーブルの内容をスタイルすることができることを示しました。

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

ヨリス答えに追加するにはhttp://developers.itextpdf.com/content/itext-7-examples/itext-7-tables

+1

でより多くの例をご覧ください:1は、Excelから簡単に 『コピースタイル』しません。 *あなたは自分でスタイルを設定し、*あなたは何をどのように決めるのか。 Excelのスタイルを読むためにApache POIが必要です。次に、それを対応するiText 'setFont' /' setFontColor'/'setFontSize'ステートメントに翻訳するために自分で作業します。 –

+0

@Jorisと私はどのように細胞をマージできますか? http://developers.itextpdf.com/examples/tables/colspan-and-rowspan - ここからの例は良くありません... – Ady96

+0

例が良くない理由を説明できますか?また、入力や出力のセルをマージすることについて話していますか? –

関連する問題