Я использую API-интерфейсы itextPDF в своем проекте. Сценарий состоит в том, чтобы добавить несколько абзацев, затем добавить изображение, а затем добавить серию текста.
скажем: n раз
1. текстовое содержание
2.Image
3. ТЕКСТОВОЕ СОДЕРЖАНИЕ
Я добавил # 1 TEXT CONTENT, # 2.IMAGE и # 3 к абзацу, а затем к документу.
Я попробовал с двумя изображениями маленькое и одно большое (которое потребует одну страницу для рендеринга в PDF)
Маленький работал нормально, но при попытке добавить увеличенное изображение вышеприведенная последовательность была не в порядке.
Текст, который был добавлен после того, как изображение начало появляться перед магом, и изображение переместилось на следующую страницу. Это потому, что изображение нуждается в одном
вся страница перешла на следующую страницу, но текст, который был ниже изображения, пополз на текущей странице, что не ожидается.
Я пытался использовать пункт Paragraph для главы, которая работала, но всегда отображала номер главы. Когда я устанавливаю chapter.setTriggerNewPage (false) одинаковым
поведение, как описано выше, было замечено.
Я приложил оба источника, могу ли я попросить вас помочь мне решить эту проблему.
1. Использование параграфа
public Test3() {
// TODO Auto-generated constructor stub
}
public static Image getImageFromResource(String URI){
Image image = null;
try {
image = Image.getInstance(URI);
} catch (BadElementException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return image;
}
public static void main(String[] args) {
Document document = new Document(PageSize.A4, 50, 50, 50, 50);
try {
PdfWriter.getInstance(document , new FileOutputStream("D:\\test\\TestPage.pdf"));
document.open();
Paragraph p = new Paragraph();
p.add("TEXT EXPECTED BEFORE IMAGE ");
Paragraph p1 = new Paragraph();
Image image = getImageFromResource("D:\\test\\Test.jpg");
p1.add(image);
Paragraph p2 = new Paragraph();
p2.add("TEXT EXPECTED AFTER IMAGE ");
document.add(p2);
document.add(p1);
document.add(p);
} catch(DocumentException de) {
System.err.println(de.getMessage());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
document.close();
}
2.Использование главы
public Test3() {
// TODO Auto-generated constructor stub
}
public static Image getImageFromResource(String URI){
Image image = null;
try {
image = Image.getInstance(URI);
} catch (BadElementException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return image;
}
public static void main(String[] args) {
Document document = new Document(PageSize.A4, 50, 50, 50, 50);
try {
PdfWriter.getInstance(document , new FileOutputStream("D:\\test\\TestPage.pdf"));
document.open();
Paragraph p = new Paragraph();
p.add("TEXT EXPECTED BEFORE IMAGE ");
Paragraph p1 = new Paragraph();
Image image = getImageFromResource("D:\\test\\Test.jpg");
p1.add(image);
Paragraph p2 = new Paragraph();
p2.add("TEXT EXPECTED AFTER IMAGE ");
for(int i=0;i<10;i++){
Chapter chapter1 = new Chapter(p, 1);
Chapter chapter2 = new Chapter(p1, 2);
Chapter chapter3 = new Chapter(p2, 3);
document.add(chapter1);
document.add(chapter2);
document.add(chapter3);
}
} catch(DocumentException de) {
System.err.println(de.getMessage());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
document.close();
}
Заранее спасибо,
Киран