ターゲット ページのセクションを含むインデックス ページを含む PDF ファイルがあります。
「book15.pdf」のデフォルトのズーム率は 68% ですが、プログラムでズーム率を 100% に変更すると、オリジナル内のハイパーリンクが失われましたか? なぜ?
これが私のサンプルコードです。参考URL : http://wskidmore.com/2011/03/pdf-initial-view-settings-itextsharp/
string FileName = AppDomain.CurrentDomain.BaseDirectory + "BooK15.pdf";
Document doc = new Document();
PdfReader reader = new PdfReader(FileName);
using (MemoryStream memoryStream = new MemoryStream())
{
PdfWriter writer = PdfWriter.GetInstance(doc, memoryStream);
doc.Open();
PdfAction zoom = PdfAction.GotoLocalPage(1, new PdfDestination(PdfDestination.XYZ, -1, -1, (float)Int32.Parse("100") / 100), writer);
writer.SetOpenAction(zoom);
doc.AddDocListener(writer);
PdfContentByte cb = writer.DirectContent;
for (int p = 1; p <= reader.NumberOfPages; p++)
{
doc.SetPageSize(reader.GetPageSize(p));
doc.NewPage();
PdfImportedPage page = writer.GetImportedPage(reader, p);
int rot = reader.GetPageRotation(p);
if (rot == 90 || rot == 270)
cb.AddTemplate(page, 0, -1.0F, 1.0F, 0, 0, reader.GetPageSizeWithRotation(p).Height);
else
cb.AddTemplate(page, 1.0F, 0, 0, 1.0F, 0, 0);
}
reader.Close();
doc.Close();
File.WriteAllBytes(AppDomain.CurrentDomain.BaseDirectory + "BooK151.pdf", memoryStream.ToArray());
}
以下のコードを使用してインデックスページのページ番号リンクを読むと:
int _count= pdfReader.GetLinks(PageNo).Count;
PdfDictionary PageDictionary = pdfReader.GetPageN(PageNo);
PdfArray Annots = PageDictionary.GetAsArray(PdfName.ANNOTS);
ただし、これは 0 のみを返します。何か案は?これが私のスクリーンショットです...
クリック可能なリンクを含む元の PDF
変換後、リンクが失われました