#java #itext
#java #itext
Вопрос:
public class FontItext {
public static void main(String[] args) throws IOException, DocumentException {
com.itextpdf.text.Document document = new com.itextpdf.text.Document(PageSize.A4,55f,30f,30f,30f);
document.setMarginMirroring(true);
PdfWriter.getInstance(document, new FileOutputStream("D://AAA.pdf"));
document.open();
BaseFont bf = BaseFont.createFont("D:\times.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
Font font = new Font(bf);
Paragraph _p = new Paragraph();
ArrayList htmlObjs = (ArrayList)HTMLWorker.parseToList(new StringReader("<table border=1><tr><td>Test</td><td>Test</td></tr></table>"),
null);
for (int k = 0; k < htmlObjs.size(); k) {
ArrayList<Chunk> chunk = (ArrayList<Chunk>)((Paragraph)htmlObjs.get(k)).getChunks();
for (int l = 0; l < chunk.size(); l ) {
Font _original_chunk_font = chunk.get(l).getFont();
Font _newchunk_font = new Font(bf);
_newchunk_font.setFamily(_original_chunk_font.getFamilyname());
_newchunk_font.setStyle(_original_chunk_font.getStyle());
_newchunk_font.setSize(_original_chunk_font.getSize());
_newchunk_font.setColor(_original_chunk_font.getColor());
chunk.get(l).setFont(_newchunk_font);
}
_p.add((Element)htmlObjs.get(k));
document.add((Element)htmlObjs.get(k));
}
document.close();
}
}
Ошибка…
Exception in thread "main" java.lang.ClassCastException: com.itextpdf.text.pdf.PdfPTable cannot be cast to com.itextpdf.text.Paragraph
at Font.FontItext.main(FontItext.java:46)
Эй, ребята, помогите мне….
Комментарии:
1. «Эй, ребята, помогите мне ….» Эй, парень, задай вопрос (и нет, добавление ‘?’ к названию не делает его вопросом).
2. html-таблица в не конвертированный PDF
3. Этот последний комментарий тоже не вопрос. На самом деле, это читается как бессмыслица. «html-таблица (is) не преобразована в pdf» — это допустимое предложение, но оно по-прежнему не является вопросом. Я брошу тебе кость. Возможно, ваш вопрос: «Как мне решить ClassCastException?». Если это вопрос, пожалуйста, отредактируйте его в своем сообщении, чтобы я мог удалить свои комментарии.
Ответ №1:
У меня не так много опыта работы с iText, но исключение гласит:
заменить:
ArrayList<Chunk> chunk = (ArrayList<Chunk>)((Paragraph)htmlObjs.get(k)).getChunks();
Автор:
ArrayList<Chunk> chunk = (ArrayList<Chunk>)((PdfPTable)htmlObjs.get(k)).getChunks();