Birden çok konumdan varolan 8x10 PDF'leri çekmek için aşağıdaki basitleştirilmiş bir koda sahibim, gerekiyorsa bunları döndürün (hemen hemen hepsi gerekir), sonra bunları tek bir 11x17 PDF sayfasına yazarak sayfa ... olması gerektiği gibi sayfaları yok render sayfa, ben> width şube gerçekten götürülüyor yüksekliği doğrulandıktan döndürülmüş ancak döndürülen sayfalar halen ancak Birden çok PDF'yi döndürün ve tek bir PDF'ye yazdırın
while (Page < StackOne.Length)
{
Files++;
using (var strm = new FileStream(RenderPath + "Test_" + Page + ".pdf", FileMode.Create, FileAccess.Write, FileShare.Read))
{
using (var MasterReport = new iTextSharp.text.Document(iTextSharp.text.PageSize._11X17))
{
using (var writer = PdfWriter.GetInstance(MasterReport, strm))
{
MasterReport.Open();
MasterReport.NewPage();
var cb = writer.DirectContent;
for (; Page <= NumPages * Files && Page < StackOne.Length; Page++)
{
var ProductionEntry = StackOne[Page - 1];
var filepath = NetPath + ProductionEntry.UniqueProductId + ".pdf";
if (File.Exists(filepath))
{
var reader = new PdfReader(filepath);
var pagesize = reader.GetPageSize(1);
if (pagesize.Height > pagesize.Width)
{
var ExistingPage = reader.GetPageN(1);
var rotation = ExistingPage.GetAsNumber(PdfName.ROTATE);
int desiredrot = 90;
if (rotation != null)
{
desiredrot += rotation.IntValue;
desiredrot %= 360;
}
ExistingPage.Put(PdfName.ROTATE, new PdfNumber(desiredrot));
}
cb.AddTemplate(writer.GetImportedPage(reader, 1), 50, 50);
}
MasterReport.NewPage();
}
}
}
}
}
yerine 10x8 ait 8x10 her 11x17 sayfada yazılmıştır.
Bu özel bir soruyu araştırdım, ancak 11x17 sayfasındaki belirli bir konuma değil, başka bir dosyaya veya sayfanın tamamına yazmıyordu.
DÜZENLEME: Ben tam olarak nerede yerleştirmek için bir yol bulmak için 8x10 sayfasını döndürmek ve benim 11x17 bunu yazmak ama ne yazık ki gibi olamaz açabiliyorum biraz Deneme yaparken ve diğer örneklere bakarak yüzden o (her zamanki gibi) oldukça basit bir cevabı oldu görünür arama ton sonra ve kod eleme yüzden benim ilk problem, yukarıda gösterildiği gibi,
var reader = new PdfReader(filepath);
var tm = new AffineTransform(1.0F, 0, 0, 1.0F, x, y);
if (reader.GetPageSize(1).Height > reader.GetPageSize(1).Width)
tm.SetTransform(0, -1f, 1f, 0, 0, reader.GetPageSize(1).Height);
writer.DirectContent.AddTemplate(writer.GetImportedPage(reader, 1), tm);
PdfCopy bu konuda tavsiye edilen bir yol olsa da, tek bir sayfaya birden çok sayfa yazmayı destekleyen herhangi bir belge bulamadım. DirectContent bunu yapmanın tek yolu gibi görünüyordu. (Ayrıca http://developers.itextpdf.com/examples/merging-pdf-documents/create-booklet-a4-document) – JasonSec
'PdfCopy' sayfaların mümkün olduğunca orijinal olmasını istiyorsanız önerilir, ancak ilgilenirsiniz diğer birçok sayfa ile ölçekleme ve düzenleme yaparak değiştirerek. – mkl
@mkl Bu benim de izlenimimdi, doğrulama için teşekkürler. – JasonSec