2010-01-26 2 views
7

동일한 PDF 내의 다른 페이지로 연결되는 목차를 포함하는 ABCpdf를 사용하여 동적으로 PDF를 생성하고 있습니다. 문제는 HTML에서 앵커 태그의 경로가 임시 파일의 절대 경로로 변경된다는 것입니다. 파일 :로 PDF에ABCpdf HTML 앵커를 변환하여 동일한 PDF의 다른 페이지로 이동

<a href="#elementId">Link</a> 

:

예를 들어, ABCpdf 링크의 href가 렌더링 할 /// C : /Users/Aaron/AppData/Local/Temp/ABCpdf/pdfCMMYPSF.htm #elementId는

이 내가 PDF를 생성하는 방법은 다음과 같습니다

Doc pdf = new Doc(); 
pdf.HtmlOptions.AddLinks = true; 
pdf.Rect.Rectangle = new System.Drawing.Rectangle(20, 80, 572, 702); 
int id = pdf.AddImageHtml(pdfHTML, true, pdf.HtmlOptions.BrowserWidth, true); 

while (pdf.Chainable(id)) 
{ 
    pdf.Page = pdf.AddPage(); 
    id = pdf.AddImageToChain(id); 
} 

pdf.HtmlOptions.LinkPages(); 
for (int i = 0; i < pdf.PageCount; i++) 
{ 
    pdf.PageNumber = i; 
    pdf.Flatten(); 
} 

내가 앵커 링크는 다른 이동합니다 클릭 제대로 그래서 렌더링하는 얻을 수있는 방법 어떤 아이디어 페이지?

+0

참고로, 저는 ABCpdf 제작자로부터 직접 지원을 받고 있습니다. 그걸 시험해 봤어? – Bryan

+0

방금 ​​이메일을 보냈습니다. 제안에 감사드립니다. – Aaron

+0

WebSuperGoo 지원은 뛰어나고 최고의 장점 중 하나입니다. Bryan은이 제안을 제안합니다. – Jakkwylde

답변

6

Websupergoo가 제게 돌아 왔고 제공 한 샘플 프로젝트에서 문제를 디버깅 할 수있었습니다. 내 문제에 대한 해결책은 내가 경우 다른 사람이 여기에 답을 게시합니다 같은 문제가 발생되어, 매우 간단했다 :

내 HTML은 다음과 같이 설정했다

:

<a href="#elementId">Link to another page</a> 
<div id="elementId">A div that's on another page</div> 

나는 단순히 변화 필요 그것은에 :

<a href="#elementId">Link to another page</a> 
<div><a name="elementId">A div that's on another page</a></div> 

동일한 PDF 내의 다른 페이지로 연결되는 링크 점프를 만들기 위해 ABCpdf 위해서는 지정된 이름의 앵커 태그를 사용해야합니다. 당신이 참조 할 수있는 링크를 삽입 할 위치를

For i = 1 to pdf.PageCount 

    pdf.PageNumber = i 
    pdf.AddBookmark("Page " & i, True) 

Next 

을 다음 :

+1

이것은 작동합니다!또한 다른 사람을위한 메모로, head 태그에서 를 사용하면 앵커가 엉망이되어 절대 URL로 참조 할 필요가 있습니다. –

+1

그것은 나를 위해 잘 작동합니다. 또한 document.HtmlOptions.AddLinks = true를 설정해야했습니다. document.HtmlOptions.LinkPages();를 실행하십시오. 문서를 병합 한 후 –

3

가치가있는 부분에 대해서는 앵커 된 북마크와 관련하여 AddImageHtml을 통해 일관성없는 결과가 발생했습니다. 이를 수행하는 가장 확실한 방법은 AddBookMark 방법을 사용하는 것이지만, 수동으로 PDF 내용을 재구성하고 HTML 지원이 제한되어 있기 때문에 작업이 훨씬 더 많이 필요합니다. 아마도

http://www.websupergoo.com/helppdf7net/source/5-abcpdf6/doc/1-methods/addbookmark.htm

최신 버전 8 개 주소이 문제 :이 방법에 대한 자세한 내용은에서 확인할 수있다. 북마크는 기존 HTML을 통해 브라우저에서 볼 수있는 것처럼 항상 상대 위치가 아닌 절대 위치로 확인되는 것 같습니다.

1

최신 ABCpdf 버전에서 나를 위해 일했다 또 다른 방법은 (9) 문서의 각 페이지에 책갈피를 추가하는 것입니다 - 즐겨 찾기이 경우 우리는 우리가 만든 각각의 북마크 통해 반복하여 목차를 만드는 :

For Each bm As Bookmark In pdf.Bookmark 

    toc &= "<Font annots='goto:" + bm.Page.PageNumber.ToString() + "'>" & bm.Title & "</Font><br>" 

Next 

pdf.AddHtml(toc) 

Websupergoo 팀은 몇 가지 예제 코드와 함께 저를 공급하고이이 떨어져 기반으로 무엇을 - 그 덕분에 이렇게 !

관련 문제