2016-07-26 174 views
0

我需要使用Arial字體大膽的顏色和放置在特定位置的文本特定位置,iText的地方文字與Arial粗體和一些顏色

Font name = FontFactory.getFont("file/ResumeBuilder/arial.tiff", 22, Font.BOLD,new CMYKColor(0, 0, 0, 175)); 
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("helloWorld.pdf")); 
document.open(); 
Paragraph paragraph = new Paragraph("Add in PDF document", name); 
document.add(paragraph); 

我嘗試使用段落,但使用一段我不知道如何將文本放置在特定的位置,或者有沒有更好的方法來實現。

回答

1

我假設你的意思是iText版本5.5.x(特別是因爲任務在iText 7.x中變得微不足道)。

此外,我假設您的意思是添加一小段文字而不需要換行。

在這種情況下,看看iText示例FoobarFilmFestival。樞轉碼:

Document document = new Document(); 
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(RESULT)); 
document.open(); 
String foobar = "Foobar Film Festival"; 
... 
Font times = new Font(bf_times, 12); 
... 
PdfContentByte canvas = writer.getDirectContent(); 
... 
Phrase phrase = new Phrase(foobar, times); 
ColumnText.showTextAligned(canvas, Element.ALIGN_LEFT, phrase, 200, 572, 0); 
ColumnText.showTextAligned(canvas, Element.ALIGN_RIGHT, phrase, 200, 536, 0); 
ColumnText.showTextAligned(canvas, Element.ALIGN_CENTER, phrase, 200, 500, 0); 
ColumnText.showTextAligned(canvas, Element.ALIGN_CENTER, phrase, 200, 464, 30); 
ColumnText.showTextAligned(canvas, Element.ALIGN_CENTER, phrase, 200, 428, -30); 
document.close(); 

ColumnText.showTextAligned允許用戶在給定的對準和角度的給定位置自由地定位文本行。


相反,如果你的意思是增加的需要斷行的較長一段文字,看iText的例子MovieCalendar。樞轉碼:

Rectangle rect = getPosition(screening); 
ColumnText column = new ColumnText(directcontent); 
column.setSimpleColumn(new Phrase(screening.getMovie().getMovieTitle()), 
     rect.getLeft(), rect.getBottom(), 
     rect.getRight(), rect.getTop(), 18, Element.ALIGN_CENTER); 
column.go(); 

此代碼繪製在矩形rect施加換行符必要的Phrase其中。