2012-10-07 2 views
2

PDF 문서를 열고 북마크를 추가하고 싶습니다. 북마크의 제목과 페이지 번호가 있습니다 (북마크에서 를 클릭하면 문서의 지정된 페이지로 이동 함).PDF 문서를 열고 북마크를 추가하십시오.

지정된 페이지로 이동할 때 현재 확대/축소 수준은 이 아니고이 변경되어야합니다.

VB.Net 예제는 좋지만 C#도 환영합니다.

iTextSharp 5.3을 사용합니다.

답변

1

자바 리소스로서 내가 원하는 정확한 코드를 많이 쓰지는 않지만 일반적인 알고리즘은 동일하게 작동합니다. 아이들이없는 하나의 북마크를 들어 는

private static List<HashMap<String, Object>> manipulatePdfBookMarkUtil(SortedMap<Integer, String> pgTtl, Rectangle rct) { 
    List<HashMap<String, Object>> mpBkMrkLst = null; 
    int itrCnt = 0; 
    if (pgTtl != null && !pgTtl.isEmpty()) { 
     mpBkMrkLst = new ArrayList<HashMap<String, Object>>(); 
     for (Map.Entry<Integer, String> itrTtlPg : pgTtl.entrySet()) { 
      HashMap<String, Object> retMap = new HashMap<String, Object>(); 
      retMap.put("Title", itrTtlPg.getValue()); 
      retMap.put("Action", "GoTo"); 
      retMap.put("Page", itrTtlPg.getKey() + " FitH " + rct.getTop()); 
      mpBkMrkLst.add(itrCnt, retMap); 
      itrCnt++; 
     } 
    } 
    return mpBkMrkLst; 
    } 

목록> 객체는 다음과 같다 (iText를 내가 당신을 iTextSharp에서 찾을 수 있다고 생각 용어 아이를 사용) -> 목록> 등 어서요은 (2.1 iText를 사용했다. 4). 페이지 번호의 정렬 된 맵을 키 (itrTtlPg.getKey())로 사용하고 책갈피 제목을 값 (itrTtlPg.getValue())으로 사용했습니다. 제목 -> 원하는 북마크 제목입니까? 동작 -> 간단히 취할 동작입니다 ("이동"이라는 의미에서와 같이). "Page", pageNum + "FitH"+ position; 즉 지정된 문자열 (제목)의 북마크를 클릭하면 pageNum으로 지정된 페이지가 배치되고 언급 한 위치에 전체 영역을 수평으로 맞 춥니 다. 크기는 상단에 수평으로 맞출 것임을 의미합니다.) 또한 수직으로 맞추어 전체 페이지를 창 크기로 표시 할 수 있습니다. 확대/축소 수준을 그대로 유지하기 위해 언급 한 것과 달리 FitH를 사용해야합니다. 위의 텍스트를 사용하면 VB/C# 코드를 원하는대로 작성할 수 있습니다. 또한 책갈피를 개요로 표시하려면 setViewerPreferences (PdfWriter.PageModeUseOutlines)를 설정하십시오.

+0

몇 가지 서식을 추가하는 방법에 대해 알아 봅니다. –

관련 문제