2013-10-01 1 views
0

Я создаю документ с itext.Фоновый рисунок с Itext

Мой IText Версия является: IText-2.0.8

мне нужно после окончательного продукта: enter image description here

У меня есть PDF таблицу с 2 столбцами.

Я добавил цвет фона для каждой ячейки. Но это результат:

enter image description here

Можно ли получить образец от первой картины?

Некоторые приходят образец:

private static Color firstBGColColor = new Color(255,222,166); 
    ... 
PdfPTable table = new PdfPTable(2); 
table.setWidthPercentage(100); 
table.setWidths(new float[]{160,400}); 
PdfPCell cell; 
cell = new PdfPCell(); 
cell.setPaddingLeft(7); 
cell.setPaddingTop(10); 
cell.setBorder(Rectangle.NO_BORDER); 
cell.setBackgroundColor(firstBGColColor); 
+0

@Bruno Lowagie, может быть, вы могли бы мне помочь? – leostiw

+0

Он, вероятно, не будет, так как вы используете старую версию iText. – Lonzak

+0

@ Lonzak Я не вижу в этом причины, почему он и другие не помогут. Я нахожусь в точке, где я не могу обновиться. – leostiw

ответ

1

Я серьезно не работал с такой древней версией IText и, следовательно, может указывать только на более текущий код. Быстрый просмотр аннотативных результатов svn, по-видимому, указывает на то, что большая часть центральной функциональности присутствует в iText в течение длительного времени. Таким образом, этот код должен хотя бы показать вам, как начать работу.

PDF знает понятие шаблона плиточные, совещаться раздел 8.7.3 облицовка Patterns из ISO 32000-1, которые должны быть то, что вам нужно, чтобы создать правильный фон. iText поддерживает такие шаблоны чередования, как показано в примере TilingPatternColor.java, используя вспомогательный метод от DeviceColor.java. Выдержка:

PdfContentByte canvas = writer.getDirectContent(); 

PdfPatternPainter square = canvas.createPattern(15, 15); 
square.setColorFill(new BaseColor(0xFF, 0xFF, 0x00)); 
square.setColorStroke(new BaseColor(0xFF, 0x00, 0x00)); 
square.rectangle(5, 5, 5, 5); 
square.fillStroke(); 

Определив PdfPatternPainter, как это, вы можете создать экземпляр цвета от него, как new PatternColor(square) и использовать этот цвет.

Образцы использует это так:

canvas.saveState(); 
canvas.setColorFill(new PatternColor(square)); 
canvas.rectangle(36, 696, 126, 126); 
canvas.fillStroke(); 
canvas.restoreState(); 

Вы, конечно, должны создать свой PdfPatternPainter по-разному. По сути, это PdfTemplate, хотя у вас есть все необходимое для создания любого шаблона черепицы, который вы хотите.