Aşağıdaki kod parçacığı bozuk PDF belgesini döndürüyor, ancak birleştirilen Belge'yi döndürürsem, her zaman geçerli bir PDF döndürür. mergedDocument, Word kullanarak oluşturduğum bir PDF dosyasına dayanır, tamamlanmış belge ise tamamen programlı olarak oluşturulur. Kod, hiçbir istisna atamadığı için "çalışır". ITextSharp neden bozuk PDF oluşturuyor?iTextSharp bozuk PDF üretiyor
byte[] completedDocument = null;
using (MemoryStream streamCompleted = new MemoryStream())
{
using (Document document = new Document())
{
PdfCopy copy = new PdfCopy(document, streamCompleted);
document.Open();
copy.Open();
foreach (var item in eventItems)
{
byte[] mergedDocument = null;
PdfReader reader = new PdfReader(pdfTemplates[item.DataTokens[NotifyTokenType.OrganisationID]]);
using (MemoryStream streamTemplate = new MemoryStream())
{
using (PdfStamper stamper = new PdfStamper(reader, streamTemplate))
{
foreach (var token in item.DataTokens)
{
if (stamper.AcroFields.Fields.Any(fld => fld.Key == token.Key.ToString()))
{
stamper.AcroFields.SetField(token.Key.ToString(), token.Value);
}
}
stamper.FormFlattening = true;
stamper.Writer.CloseStream = false;
}
mergedDocument = new byte[streamTemplate.Length];
streamTemplate.Position = 0;
streamTemplate.Read(mergedDocument, 0, (int)streamTemplate.Length);
}
reader = new PdfReader(mergedDocument);
for (int i = 1; i <= reader.NumberOfPages; i++)
{
document.SetPageSize(PageSize.A4);
copy.AddPage(copy.GetImportedPage(reader, i));
}
}
completedDocument = new byte[streamCompleted.Length];
streamCompleted.Position = 0;
streamCompleted.Read(completedDocument, 0, (int)streamCompleted.Length);
}
}
return completedDocument;
, html dönüştürmek ise emin html hr etiketi içeren gelmez olun. –
Yapabilirsem 1000 kere kazanırdım. Görüntüleri ve pdfs'leri tek bir pdf belgesine birleştirmekte zorluk çekiyordum, bu da doğru sürece ışık tuttu. – jtiger
Teşekkür ederim, boş bir PDF dosyasına geri dönerek sorunumu çözdüm. – Taurib