0

ターゲット ページのセクションを含むインデックス ページを含む 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 クリック可能なリンクを含む元の PDF

変換後、リンクが失われました 変換後、リンクが失われました

4

0 に答える 0