cách tối ưu để ghép các tập tin PDF với 2 iTextSharp trong C# là gì? Tôi đang sử dụng ASP.NET/.NET3.5.PDF Kết hợp với iTextSharp
Trả lời
public static void Merge(List<String> InFiles, String OutFile)
{
using (FileStream stream = new FileStream(OutFile, FileMode.Create))
using (Document doc = new Document())
using (PdfCopy pdf = new PdfCopy(doc, stream))
{
doc.Open();
PdfReader reader = null;
PdfImportedPage page = null;
//fixed typo
InFiles.ForEach(file =>
{
reader = new PdfReader(file);
for (int i = 0; i < reader.NumberOfPages; i++)
{
page = pdf.GetImportedPage(reader, i + 1);
pdf.AddPage(page);
}
pdf.FreeReader(reader);
reader.Close();
});
}
}
Làm thế nào tôi có thể sử dụng chức năng này? Nói, bạn có một pdf được tạo ra và nối nó vào một tệp pdf vật lý? –
Xin lưu ý rằng câu trả lời này là sai. Nó ném đi tất cả tương tác và nó có thể dẫn đến file cồng kềnh nếu các file PDF khác nhau chứa nguồn giống hệt nhau. Các chỉ câu trả lời đúng là một câu trả lời có sử dụng 'PdfSmartCopy' mà là một lớp có sẵn trong iTextSharp. –
Tôi cũng muốn có một cái nhìn tại câu trả lời này: https://stackoverflow.com/questions/38339151/c-sharp-itextsharp-merge-multiple-pdf-via-byte-array –
Câu trả lời cuối cùng hoạt động nếu bạn không muốn xóa tệp gốc. Trong trường hợp của tôi, tôi muốn xóa và khi tôi cố gắng, tôi có ngoại lệ. Giải pháp của tôi là:
public static bool MergePDFs(List<String> InFiles, String OutFile)
{
bool merged = true;
try
{
List<PdfReader> readerList = new List<PdfReader>();
foreach (string filePath in InFiles)
{
PdfReader pdfReader = new PdfReader(filePath);
readerList.Add(pdfReader);
}
//Define a new output document and its size, type
Document document = new Document(PageSize.A4, 0, 0, 0, 0);
//Create blank output pdf file and get the stream to write on it.
PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(OutFile, FileMode.Create));
document.Open();
foreach (PdfReader reader in readerList)
{
PdfReader.unethicalreading = true;
for (int i = 1; i <= reader.NumberOfPages; i++)
{
PdfImportedPage page = writer.GetImportedPage(reader, i);
document.Add(iTextSharp.text.Image.GetInstance(page));
}
}
document.Close();
foreach (PdfReader reader in readerList)
{
reader.Close();
}
}
catch (Exception ex)
{
merged = false;
}
return merged;
}
tôi sao chép mã từ Original Code
Sửa đổi nhỏ để xử lý xoay vòng các trang, v.v., ngoài ra, nó dễ dàng thay thế mã trong dự án của tôi. .. – Ads
- 1. BadPasswordException khi điền pdf với iTextSharp
- 2. Tạo pdf phù hợp PDF/A chỉ với hình ảnh bằng cách sử dụng iTextSharp
- 3. Kết hợp các tệp pdf với các dấu trang
- 4. Mật khẩu iTextSharp Bảo vệ PDF
- 5. C# itextsharp Tạo PDF với hình mờ trên mỗi trang
- 6. iTextSharp - Chuyển từ doc/docx sang pdf
- 7. Xoay PDF trong C# bằng iTextSharp
- 8. Khóa PDF để chỉnh sửa bằng iTextSharp
- 9. ITextSharp chỉnh sửa pdf hiện có
- 10. pypdf Kết hợp nhiều file PDF thành một pdf
- 11. ITextSharp chèn văn bản vào một pdf hiện có
- 12. Kết hợp hai (hoặc nhiều) PDF
- 13. Kết hợp các tệp PDF C#
- 14. Xóa các đối tượng vô hình PDF bằng iTextSharp
- 15. Tạo pdf từ tệp html persian bởi ITextSharp
- 16. Tạo iTextSharp một pdf từ danh sách các mảng byte
- 17. Thêm bảng vào PDF sẵn có sử dụng iTextSharp
- 18. Tìm kiếm từ cụ thể bằng PDF bằng Itextsharp
- 19. iTextSharp cho PDF - cách thêm tệp đính kèm?
- 20. Đọc/sửa đổi siêu dữ liệu PDF bằng iTextSharp
- 21. Sự cố khi thêm javascript vào PDF bằng iTextSharp
- 22. Chèn trang vào tệp PDF hiện có bằng itextsharp
- 23. Cách chuyển đổi PDF sang tệp văn bản trong iTextSharp
- 24. Làm cách nào để chèn hình ảnh với iTextSharp vào một tệp PDF hiện có?
- 25. ItextSharp - Tự động điền một mẫu pdf sử dụng C# - Các vấn đề với hộp kiểm
- 26. Xoay một trang 90 độ với iTextSharp/VB trong nhiều trang PDF hiện có
- 27. Làm thế nào để thiết lập đoạn PDF hoặc phông chữ dòng chiều cao với iTextSharp?
- 28. Làm cách nào để thêm trường biểu mẫu vào pdf hiện có với itextsharp?
- 29. Trích xuất văn bản Itextsharp
- 30. Đặt lề trang bằng iTextSharp
Tôi đã sử dụng mã dựa trên bài viết sau với thành công: [Simple NET PDF Merger] (http://www.codeproject.com /KB/files/SimplePdfMerger.aspx) –