Problème :
Lors de la fusion de plusieurs documents PDF, chaque page est considérée comme une page entière même si il n'y a qu'une petite quantité de contenu, ce qui entraîne des espaces verticaux dans le fichier fusionné document.
Solution :
public class PdfVeryDenseMergeTool { // ... (rest of the class) protected Rectangle PageSize; protected float TopMargin; protected float BottomMargin; protected float Gap; protected Document Document; protected PdfWriter Writer; protected float YPosition = 0; public PdfVeryDenseMergeTool(Rectangle size, float top, float bottom, float gap) { // ... (rest of the constructor) } public void Merge(MemoryStream outputStream, List<PdfReader> inputs) { // ... (rest of the method) } }
public class PageVerticalAnalyzer : IRenderListener { // ... (rest of the class) public List<float> VerticalFlips = new List<float>(); // ... (rest of the methods) }
public void TestMergeDocuments() { PdfVeryDenseMergeTool tool = new PdfVeryDenseMergeTool(iTextSharp.text.PageSize.A4, 18, 18, 10); List<byte[]> Files = new List<byte[]>(); // ... (code to load files) using (MemoryStream ms = new MemoryStream()) { List<PdfReader> files = new List<PdfReader>(); foreach (byte[] ba in Files) { files.Add(new PdfReader(ba)); } tool.Merge(ms, files); // ... (save the file using ms.GetBuffer()) } }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!