C# PDFsharp-尝试为我刚刚合并的所有文件创建一个目录,其中包含指向页面的链接
我正在尝试为使用PDFsharp连接在一起的文件创建一个目录(带有页面链接) 我已经到了我试图添加一个链接到我刚刚写的文本的地步。有人能提供一些指导吗C# PDFsharp-尝试为我刚刚合并的所有文件创建一个目录,其中包含指向页面的链接,c#,pdfsharp,C#,Pdfsharp,我正在尝试为使用PDFsharp连接在一起的文件创建一个目录(带有页面链接) 我已经到了我试图添加一个链接到我刚刚写的文本的地步。有人能提供一些指导吗 public static void combinePDFs(List<string> filenames) { List<PdfDocument> pdfs = new List<PdfDocument>(); foreach (string f in fil
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;
}
publicstaticvoidcombinepdfs(列出文件名)
{
List pdfs=new List();
foreach(文件名中的字符串f)
Add(PdfReader.Open(f,PdfDocumentOpenMode.Import));
列表页面sindoc=新列表();
使用(PdfDocument outPdf=new PdfDocument())
{
PdfDocument doc=TOC();
//复制页(TOC(),outPdf);
foreach(PDF中的var p)
pagesInDoc.Add(复制页(p,doc));
doc.Save(@“…\file1和2.pdf”);
}
PDF文档TOC()
{
PdfDocument doc=新PdfDocument();
PdfPage page=doc.AddPage();
XGraphics gfx=XGraphics.FromPdfPage(第页);
XFont字体=新的XFont(“Calibri”,14,XFontStyle.Bold);
gfx.DrawString(“目录”,字体,XBrushes.DarkBlue,
新的XRect(0,0,页宽,页高)
,XStringFormats.TopLeft);
var xrect=新的xrect(10,20,300,20);
//我试图硬编码我的第一个链接在这里
gfx.DrawString(“CRA”,字体,XBrushes.DarkBlue
,xrect,XStringFormats.CenterLeft);
第页AddDocumentLink(新的PdfRectangle(xrect),2);
退货单;
}
int CopyPages(PDF文档从,PDF文档到)
{
for(int i=0;i
即使它允许您这样做,您仍然需要添加一个转换:
page.AddDocumentLink(new PdfRectangle(xrect), 2);
to
page.AddDocumentLink(new PdfRectangle(gfx.Transformer.WorldToDefaultPage(xrect)), 2);
即使它允许您这样做,您仍然需要添加一个转换:
page.AddDocumentLink(new PdfRectangle(xrect), 2);
to
page.AddDocumentLink(new PdfRectangle(gfx.Transformer.WorldToDefaultPage(xrect)), 2);