Проекты меняются, требования меняются, а неизменные программисты всегда набирают на клавиатуры ...
После того, как PDF сгенерирован, иногда вам нужно добавить другой контент в PDF, такой как текст, картинки ...
После нескольких неудачных попыток я наконец получил правильный способ написать код.
Эта запись и суммирование, так что в следующий раз, когда вы будете без изменений и адаптируются к изменениям, переходите к: генерируйте полное руководство PDF
Pdfreader reader = new pdfreader ("e: //a.pdf"); Pdfstamper stamper = new PdfStamper (Reader, New FileOutputStream ("e: //b.pdf")); Pdfcontentbyte overcontent = stamper.getovercontent (1);Приведенный выше код считается основным кодом, который добавляет контент в исходный PDF. Конкретный процесс заключается в следующем
• Если читатель достаточно осторожен, код состоит в том, чтобы прочитать оригинал A.PDF, затем напишите его в B.PDF, а затем управляйте B.PDF.
• Некоторые читатели могут сказать, что чтение А, а затем написание его в А определенно невозможно. A был загружен и не может быть изменен при чтении.
• Мне это не нравится, потому что информация исходного PDF уже хранится в базе данных, включая путь сервера PDF, старое имя, новое имя, тип ...
• Это приведет к дополнительной операции по изменению базы данных, поскольку имя PDF должно быть изменено здесь, и люди знают, как будут изменяться последующие требования.
• Срочно добавлять контент в PDF здесь, и больше ничего не меняется, поэтому я слегка скорректировал код.
Fileutil.filechannelcopy (a.pdf, a + "tmp" .pdf)); Pdfreader reader = new pdfreader (a + "tmp" .pdf); Pdfstamper stamper = new PdfStamper (Reader, New FileOutputStream (A.PDF)); Pdfcontentbyte overcontent = stamper.getovercontent (1);
Поток кода становится таким
Здесь мы представляем файл копии трубопровода, копируйте A, читаем копию, а затем запишем обратно в исходный PDF A, и, конечно, вам нужно удалить файл копирования.
На этом этапе, независимо от того, как изменяются последующие требования, другие свойства PDF остаются неизменными, и вы можете встретиться с ними спокойно.
Код копии трубопровода выглядит следующим образом:
pubpc static void fileChannelCopy (источники файлов, файл dest) {try {fileInputStream inputStream = new FileInputStream (источники); FileOutputStream outputStream = new FileOutputStream (dest); FileChannel fileChannepn = inputStream.getChannel (); // Получить соответствующий файл канал FileChannel FileChannelout = outputStream.getChannel (); // Получить соответствующий файловый канал FileChannepn.Transferto (0, fileChannepn filechannepn.close (); outputStream.close (); fileChannelout.close (); } catch (Exception e) {e.printstackTrace (); }}Полный PDF другой код контента выглядит следующим образом:
Fileutil.filechannelcopy (new File ("e: //a.pdf"), новый файл ("e: // a+" tmp ".pdf")); Pdfreader reader = new pdfreader ("e: // a+" tmp ".pdf"); Pdfstamper stamper = new PdfStamper (Reader, New FileOutputStream ("e: //a.pdf")); Pdfcontentbyte overcontent = stamper.getovercontent (1); // Добавить текст basefont font = basefont.createfont ("stsong-pght", "unigb-ucs2-h", basefont.not_embedded); Overcontent.beginText (); Overcontent.SetFontAndSize (Font, 10); Overcontent.settextmatrix (200, 200); Overcontent.showTextApgned (element.apgn_center, «текст, который должен быть добавлен», 580,530,0); Overcontent.endText (); // Добавить изображение pdfdictionary pdfdictionary = reader.getPagen (1); Pdfobject pdfobject = pdfdictionary.get (new pdfname ("Mediabox")); Pdfarray pdfarray = (pdfarray) pdfobject; Image image = image.getInstance ("d: //1.jpg"); Image.SetAbSolutePosition (100 100); Overcontent.Addimage (изображение); // Добавить красный круг Overcontent.setrgBcolorStroke (0xff, 0x00, 0x00); Overcontent.SetPnewIdth (5F); Overcontent.elppse (250, 450, 350, 550); Overcontent.Stroke (); stamper.close ();Вышеуказанное полное руководство по созданию PDFS - это метод реализации добавления контента в существующие PDF. Редактор делится всем контентом с вами. Я надеюсь, что вы можете дать вам ссылку, и я надеюсь, что вы сможете поддержать Wulin.com больше.