【问题标题】:PDFsharp - Trying to make a table of contents for all the files I just merged with links to pagesPDFsharp - 尝试为我刚刚与页面链接合并的所有文件制作目录
【发布时间】:2020-03-04 23:02:12
【问题描述】:

我正在尝试为使用 PDFsharp 连接在一起的文件创建目录(带有页面链接)。

我已经到了尝试添加指向我刚刚写的文本的链接的地步。有人可以提供一些方向吗?

    public static void combinePDFs(List<string> filenames)
    {
        List<PdfDocument> pdfs = new List<PdfDocument>();

        foreach (string f in filenames)
        pdfs.Add(PdfReader.Open(f, PdfDocumentOpenMode.Import));

        List<int> pagesInDoc = new List<int>();

        using (PdfDocument outPdf = new PdfDocument())
        {
            PdfDocument doc = TOC();
            //CopyPages(TOC(), outPdf);
            foreach (var p in pdfs)
                pagesInDoc.Add(CopyPages(p, doc));



            doc.Save(@"...\file1and2.pdf");
        }

        PdfDocument TOC()
        {
            PdfDocument doc = new PdfDocument();
            PdfPage page = doc.AddPage();
            XGraphics gfx = XGraphics.FromPdfPage(page);
            XFont font = new XFont("Calibri", 14, XFontStyle.Bold);
            gfx.DrawString("Table of Contents", font, XBrushes.DarkBlue,
                new XRect(0,0,page.Width,page.Height)
                ,XStringFormats.TopLeft);

            var xrect = new XRect(10, 20, 300, 20);

            //I am trying to hard code my first link here
            gfx.DrawString("CRA", font, XBrushes.DarkBlue
                , xrect, XStringFormats.CenterLeft);
            page.AddDocumentLink(new PdfRectangle(xrect), 2);

            return doc;
        }

        int CopyPages(PdfDocument from, PdfDocument to)
        {
            for (int i = 0; i < from.PageCount; i++)
            {
                to.AddPage(from.Pages[i]);
            }
            return from.PageCount;
        }

【问题讨论】:

    标签: c# pdfsharp


    【解决方案1】:

    即使它让你这样做,你仍然需要添加一个转换:

    page.AddDocumentLink(new PdfRectangle(xrect), 2);
    
    to
    
    page.AddDocumentLink(new PdfRectangle(gfx.Transformer.WorldToDefaultPage(xrect)), 2);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-08-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-04
      • 2015-11-01
      • 1970-01-01
      相关资源
      最近更新 更多