2017-09-30 2 views
0

私はItextでpdfを作成したかったので、実行可能なjarを作成するまではすべて動作します。 「Adobe Readerは、サポートされているファイルタイプではないため、またはファイルが破損している(たとえば、電子メールの添付ファイルとして送信され、正しくデコードされなかったなど)xxx.pdfを開くことができませんでした。 "そして、ここに私のコードです:Itext、作成したPDFを開くことができませんでした

String ruta = txtruta.getText(); 
    Document doc = new Document(); 

    try { 
     FileOutputStream archivo = new FileOutputStream(ruta + ".pdf"); //crear archivo con su ruta 

     doc.open(); 

     PdfPTable tabla = new PdfPTable(8); //creacion de una tabla de 8 columnas 

     tabla.addCell("Celda 1");// addCell() agrega una celda a la tabla, el cambio de fila ocurre automaticamente al llenar la fila 
     tabla.addCell("Celda 2"); 
     tabla.addCell("Celda 3"); 
     tabla.addCell("Celda 4"); 
     tabla.addCell("Celda 5"); 
     tabla.addCell("Celda 6"); 
     tabla.addCell("Celda 7"); 
     tabla.addCell("Celda 8");// aca se completa una fila 

     doc.add(tabla); 

     doc.close(); 

     JOptionPane.showMessageDialog(null, "PDF creado correctamente"); 

    } catch (Exception e) { 
     System.out.println("Error: "+ e); 
    } 

答えて

1

コード内で欠落している行があります:あなたは

String ruta = txtruta.getText(); 
Document doc = new Document(); 

try { 
    FileOutputStream archivo = new FileOutputStream(ruta + ".pdf"); //crear archivo con su ruta 
    PdfWriter.getInstance(document, archivo); 
    doc.open(); 

    PdfPTable tabla = new PdfPTable(8); //creacion de una tabla de 8 columnas 

    tabla.addCell("Celda 1");// addCell() agrega una celda a la tabla, el cambio de fila ocurre automaticamente al llenar la fila 
    tabla.addCell("Celda 2"); 
    tabla.addCell("Celda 3"); 
    tabla.addCell("Celda 4"); 
    tabla.addCell("Celda 5"); 
    tabla.addCell("Celda 6"); 
    tabla.addCell("Celda 7"); 
    tabla.addCell("Celda 8");// aca se completa una fila 

    doc.add(tabla); 

    doc.close(); 

    JOptionPane.showMessageDialog(null, "PDF creado correctamente"); 

} catch (Exception e) { 
    System.out.println("Error: "+ e); 
} 

参照していますか?

PdfWriter.getInstance(document, archivo);を指定しないと、FileOutputStreamが作成されますが、そのストリームには何も書き込まれません。これは0バイトのファイルです。しかし、*「私が実行可能jarファイル作ったまですべての作品」*説明していません

+0

... – mkl

+0

ん@mklが、それは問題の情報に基づいて付与することができる唯一の答えです。 OPが言った:*クラスが例外を見つけられない、*私たちは実行可能なjar(問題の最も可能性の高い原因)で依存関係が正しくないと仮定することができます。しかし、OPは 'catch(Exception e)'と書くと非常にばかげたことをしています。実際には 'System.out'の出力はクラスの欠落を警告しますが、OPにはエラーは言及されていないので、そのことについてコメントすることはできません。 –

+0

もちろんそうです。 – mkl

関連する問題