โครงการกำลังเปลี่ยนแปลงข้อกำหนดกำลังเปลี่ยนแปลงและโปรแกรมเมอร์ที่ไม่เปลี่ยนแปลงมักจะพิมพ์บนคีย์บอร์ดเสมอ ...
หลังจากสร้าง PDF บางครั้งคุณต้องเพิ่มเนื้อหาอื่น ๆ ลงใน PDF เช่นข้อความรูปภาพ ...
หลังจากความพยายามที่ล้มเหลวหลายครั้งในที่สุดฉันก็มีวิธีที่ถูกต้องในการเขียนโค้ด
บันทึกและสรุปนี้เพื่อให้ในครั้งต่อไปที่คุณจะไม่เปลี่ยนแปลงและปรับให้เข้ากับการเปลี่ยนแปลงโปรดย้ายไปที่: สร้างคู่มือ PDF เต็มรูปแบบ
pdfreader reader = pdfreader ใหม่ ("e: //a.pdf"); pdfstamper stamper = ใหม่ pdfstamper (reader, fileOutputStream ใหม่ ("e: //b.pdf")); pdfContentByte overcontent = Stamper.getOverContent (1);รหัสข้างต้นถือเป็นรหัสหลักที่เพิ่มเนื้อหาให้กับ PDF ดั้งเดิม กระบวนการเฉพาะมีดังนี้
•หากผู้อ่านมีความระมัดระวังเพียงพอรหัสคือการอ่าน A.PDF ดั้งเดิมจากนั้นเขียนลงใน B.PDF แล้วใช้งาน B.PDF
•ผู้อ่านบางคนอาจบอกว่าการอ่าน A แล้วเขียนลงใน A นั้นเป็นไปไม่ได้อย่างแน่นอน A ได้รับการโหลดและไม่สามารถแก้ไขได้เมื่ออ่าน
•ฉันไม่ชอบสิ่งนี้เพราะข้อมูลของ PDF ดั้งเดิมถูกเก็บไว้ในฐานข้อมูลแล้วรวมถึงเส้นทางเซิร์ฟเวอร์ของ PDF ชื่อเก่าชื่อใหม่พิมพ์ ...
•สิ่งนี้จะทำให้เกิดการเปลี่ยนแปลงฐานข้อมูลพิเศษเนื่องจากชื่อ PDF จะต้องมีการเปลี่ยนแปลงที่นี่และผู้คนรู้ว่าข้อกำหนดที่ตามมาจะเปลี่ยนแปลงอย่างไร
•เป็นเรื่องเร่งด่วนที่จะเพิ่มเนื้อหาลงใน PDF ที่นี่และไม่มีอะไรเปลี่ยนแปลงอีกดังนั้นฉันจึงปรับรหัสเล็กน้อย
fileutil.filechannelcopy (a.pdf, a + "tmp" .pdf)); pdfreader reader = pdfreader ใหม่ (a + "tmp" .pdf); pdfstamper stamper = pdfstamper ใหม่ (ตัวอ่าน, ใหม่ fileOutputStream (a.pdf)); pdfContentByte overcontent = Stamper.getOverContent (1);
การไหลของรหัสกลายเป็นเช่นนี้
ที่นี่เราแนะนำไฟล์สำเนาไปป์ไลน์คัดลอก A อ่านสำเนาแล้วเขียนกลับไปที่ PDF A ดั้งเดิมและแน่นอนคุณต้องลบไฟล์คัดลอก
ณ จุดนี้ไม่ว่าข้อกำหนดที่ตามมาจะเปลี่ยนไปอย่างไรคุณสมบัติอื่น ๆ ของ PDF ยังคงไม่เปลี่ยนแปลงและคุณสามารถเผชิญหน้ากับพวกเขาได้อย่างสงบ
รหัสสำเนาไปป์ไลน์มีดังนี้:
pubpc static void fileChannelCopy (แหล่งที่มาไฟล์, ปลายทางไฟล์) {ลอง {fileInputStream inputStream = ใหม่ fileInputStream (แหล่งที่มา); fileOutputStream outputStream = ใหม่ fileOutputStream (dest); fileChannel fileChannepn = inputStream.getChannel (); // รับ FileChannel FileChannelout = outputStream.getChannel (); // รับ FileChannelout FileChannelout inputstream.close (); filechannepn.close (); outputstream.close (); filechannelout.close (); } catch (exception e) {e.printstacktrace (); -รหัสเนื้อหาอื่น ๆ PDF ที่สมบูรณ์มีดังนี้:
fileutil.filechannelCopy (ไฟล์ใหม่ ("e: //a.pdf"), ไฟล์ใหม่ ("e: // a+" tmp ".pdf")); pdfreader reader = pdfreader ใหม่ ("e: // a+" tmp ".pdf"); pdfstamper stamper = ใหม่ pdfstamper (reader, fileOutputStream ใหม่ ("e: //a.pdf")); pdfContentByte overcontent = Stamper.getOverContent (1); // เพิ่ม text 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 (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 มากขึ้น