0
私はこのコードをいくつか提案しました。それはほとんど動作しますが、それは、必要なものの後にページを回転させています。私の例の最初のページは風景ですが、2番目のページは回転します。私は何が起こっているのか分からない。iTextSharpは、私がランドスケープしたいものの後でページを回転させています
Document document = new Document();
PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(outFile, FileMode.Create));
document.Open();
PdfContentByte cb = writer.DirectContent;
PdfReader reader = new PdfReader(bytes);
int pages = reader.NumberOfPages;
for (int i = 1; i <= pages; i++)
{
document.NewPage();
PdfImportedPage page = writer.GetImportedPage(reader, i);
Rectangle psize = reader.GetPageSizeWithRotation(i);
document.SetPageSize(psize.Width > psize.Height ? PageSize.A4.Rotate() : PageSize.A4);
switch (psize.Rotation)
{
case 0:
cb.AddTemplate(page, 1f, 0, 0, 1f, 0, 0);
break;
case 90:
cb.AddTemplate(page, 0, -1f, 1f, 0, 0, psize.Height);
break;
case 180:
cb.AddTemplate(page, -1f, 0, 0, -1f, 0, 0);
break;
case 270:
cb.AddTemplate(page, 0, 1.0F, -1.0F, 0, psize.Width, 0);
break;
}
}
document.Close();
writer.Close();
あなたはそれを見ますか?
PDFの異なるページのサイズが異なることがあります。したがって、あなたが設定した 'Document'属性' PageSize'は、現在のページのサイズは変更されませんが、後で作成される新しいページのサイズは変更されません。実際のユーザーケースは何ですか?あなたは単にいくつかのページをコピーしたいと思うようです。これは 'PdfCopy'を使って行うべきです。そのクラスはページサイズを正しく整理します。 – mkl
あなたはそうです。 PdfCopyは私にとってうまくいっているようです。ありがとうございました。私は自分の疑問に答えるだろう。私は最良の手順が何であるかは分かりません。 – erosebe
自分の答えは、特に私がヒントを与えただけで大丈夫です。答えが他人のコメントの単なるコピーであった場合、その人に答えを書くように依頼する必要があります。 – mkl