2017-01-14 15 views
0

アンドロイドのitextライブラリを使用してPDF outfileファイルを作成していますが、段落は中央揃えされていません。同様のコードはJavaデスクトップアプリケーションで中央揃えの出力が作成されます。Androidでの段落整列の問題

また、Element.ALIGN_CENTERとParagraph.ALIGN_CENTERを使用してチェックしましたが、アンドロイドでは成功しません。ここで

Androidのコード

は、中心に整列段落を作成するためのアンドロイドで私のコードです。

addEmptyLineは、Javaデスクトップ01で続く

private static void addEmptyLine(Paragraph paragraph, int number) { 
    for (int i = 0; i < number; i++) { 
     paragraph.add(new Paragraph(" ")); 
    } 
} 

出力PDF Javaデスクトップアプリケーションコード

アンドロイド enter image description here

Paragraph prefaceX = new Paragraph(); 
prefaceX.setAlignment(Paragraph.ALIGN_CENTER); 
prefaceX.add(new Paragraph("Dummy Text", catFont)); 
prefaceX.add(new Paragraph("* Dummy Details ", smallBoldMM)); 
document.add(prefaceX); 

出力PDFとしてある

Paragraph prefaceX = new Paragraph(); 
prefaceX.setAlignment(Element.ALIGN_CENTER); 
addEmptyLine(preface, 1); 
prefaceX.add(new Paragraph(getString(R.string.report_title), catFont)); 
prefaceX.add(new Paragraph(getString(R.string.disclaimer), smallBoldMM)); 
document.add(prefaceX); 

enter image description here

フォント(catFontとsmallBoldMM)は、カスタムフォントであり、両方は、テーブルを使用することをお勧めしないでください

private static Font catFont = new Font(Font.FontFamily.TIMES_ROMAN, 18, 
Font.BOLD); 
private static Font smallBoldMM = new Font(Font.FontFamily.TIMES_ROMAN, 7, 
     Font.ITALIC) 

をたどると同じです。

答えて

1

あなたのAndroidアプリケーションとデスクトップアプリケーションの違いは、使用されているiTextのバージョンだと思います。

Paragraphを使用すると、段落について話すときに期待されるのと同じ動作を得ることができます。

Paragraph prefaceX = new Paragraph(); 
prefaceX.setAlignment(Element.ALIGN_CENTER); 
document.add(prefaceX); 
document.add(Chunk.NEWLINE); 
document.add(new Paragraph(getString(R.string.report_title), catFont)); 
document.add(new Paragraph(getString(R.string.disclaimer), smallBoldMM)); 

あなたは一つの大きなParagraphにすべての異なるParagraphオブジェクトを置きたいと思います理由はありません。

iText 7(ただしiText 5以前を使用しています)を見てみると、Paragraphオブジェクト(単一段落)とDivオブジェクト(いくつかのParagraphおよび他の目的)。

+0

こんにちは、私はあなたの助けをありがとうが、私は両方のアンドロイドとデスクトップアプリケーションで同じiTextバージョン(5.5.4)を使用していた。 **私はアンドロイドとデスクトップアプリケーション用に別々のアプリケーションを作成しました。問題は解決しました。** 何らかの理由で、最新のitextを使用するようにコードを更新できません。 –

関連する問題