kullanarak yazılmamış bir belgeye ekleyin. Varolan bir disk üstü PDF dosyasından sayfa oluşturulmakta olan bir bellek içi PDF belgesine sayfa (lar) ı doğru şekilde nasıl ekleyebilirim?Dosyadan varolan bir PDF dosyasını, WordextSharp
iTextSharp kullanarak bir PDF belgesi üreten bir sınıfa sahibiz. Bu iyi çalışıyor. Şu anda son sayfada bir resim olarak terimler & Şartları ekleyin:
this.nettPriceListDocument.NewPage();
this.currentPage++;
Image logo = Image.GetInstance("/inetpub/Applications/Trade/Reps/images/TermsAndConditions.gif");
logo.SetAbsolutePosition(0, 0);
logo.ScaleToFit(this.nettPriceListDocument.PageSize.Width, this.nettPriceListDocument.PageSize.Height);
this.nettPriceListDocument.Add(logo);
Ben bir PDF belgesi olarak bu imaja sahip ve sonuna ekler tercih ederim. Bunu anlayabilseydim, ürettiğim şeye ihtiyaç duyacağımız diğer PDF belgelerini eklemek mümkün olurdu. Bir sonuçlanır
string tcfile = "/inetpub/Applications/Trade/Reps/images/TermsAndConditions.pdf";
PdfReader reader = new PdfReader(tcfile);
PdfWriter writer = PdfWriter.GetInstance(this.nettPriceListDocument, this.nettPriceListMemoryStream);
PdfContentByte content = writer.DirectContentUnder;
for (int pageno = 1; pageno < reader.NumberOfPages + 1; pageno++)
{
this.nettPriceListDocument.NewPage();
this.currentPage++;
PdfImportedPage newpage = writer.GetImportedPage(reader, pageno);
content.AddTemplate(newpage, 1f, 1f);
}
writer.DirectContentUnder
de istisna "belgesinde açık değil" Ben de denedim:
denedim
bir ekleme sonuçlanırstring tcfile = "/inetpub/Applications/Trade/Reps/images/TermsAndConditions.pdf";
PdfReader reader = new PdfReader(tcfile);
PdfConcatenate concat = new PdfConcatenate(this.nettPriceListMemoryStream);
concat.AddPages(reader);
Belgenin her zamanki ilk sayfasında boş, garip boyutlu sayfa. Ben de denedim
:
copier.AddPage(newpage)
bir NullReferenceException sonuçlanır
string tcfile = "/inetpub/Applications/Trade/Reps/images/TermsAndConditions.pdf";
PdfReader reader = new PdfReader(tcfile);
PdfCopy copier = new PdfCopy(nettPriceListDocument, nettPriceListMemoryStream);
for (int pageno = 1; pageno < reader.NumberOfPages + 1; pageno++)
{
this.currentPage++;
PdfImportedPage newpage = copier.GetImportedPage(reader, pageno);
copier.AddPage(newpage);
}
copier.Close();
reader.Close();
. Ben de denedim
:
string tcfile = "/inetpub/Applications/Trade/Reps/images/TermsAndConditions.pdf";
PdfReader reader = new PdfReader(tcfile);
PdfCopyFields copier = new PdfCopyFields(nettPriceListMemoryStream);
copier.AddDocument(reader);
Bu aynı zamanda copier.AddDocument(reader)
bir NullReferenceException ile sonuçlanır.
Bu fikirlerin çoğunu çeşitli StackOverflow soruları ve yanıtlarından aldım. Hiç kimsenin uğraşmayacağı bir şey, mevcut bir PDF dosyasından yeni sayfa (lar) ekleyerek, diski üzerindeki bir PDF dosyasına henüz yazılmamış halihazırda varolan bellek içi belgeye eklenmesidir. Bu belge zaten açılmış ve içine yazılmış veri sayfaları vardı. Bu Koşulları & Koşulları prosedüründen çıkarırsam veya yazdığım bir görüntü (orijinal hali gibi) yazıyorsa, sonuçta oluşan PDF düzgün bir şekilde ortaya çıkar.
Başladığım kadarıyla bitirmek için: Varolan bir disk üstü PDF dosyasından, oluşturulmuş bir bellek içi PDF belgesine sayfa (lar) ı doğru şekilde nasıl ekleyebilirim?
Bu konudaki musevileriniz için şimdiden teşekkür ve takdir. Daha fazla bilgi vermeme izin verin.
Teşekkür @Jonathan, ne arayamam eğer 'Document.Open()' Belge açık zaten ve zaten eklenmiş unsurların bir sürü vardı çünkü? – Troy
@Nevyn Belgeyi kapatabilir ve ardından birleştirme işleminde yeniden açabilmelisiniz. Yapmanız gereken tek şey belgeyi kapatmak, ardından belgelerinizin bayt dizilerini yeni birleştirilmiş belgenizin bir memor akışını döndürecek birleştirme yöntemine iletmektir. – Jonathan