2010-02-22 2 views
1

PDFBox를 사용하여 .net 프로젝트에서 PDF 강조 표시를 생성하는 것을 선호합니다. PDFBox는 iKVM을 http://www.pdfbox.org/userguide/dot_net.htmlIKVM을 사용하여 .net/C# 환경에서 PDFBox 1.0을 사용하는 방법

을 통해 .NET에서 사용할 수 있지만 PDFBOX.1.0.0.jar이 NoClassDefFound 경고의 전체를 많이 생성에서 실행 ikvmc (최신 버전)이 DLL을 생성하는 것을 말한다.

이 문제를 어떻게 해결해야하며 프로젝트에 다른 DLL을 포함시켜야합니까? 이 문제에 관해 읽은 이전 문서/기사에서 파일 이름이 변경된 것처럼 보입니다.

미리 감사드립니다.

답변

0

사용중인 PDFBox의 버전에 따라 다릅니다. 최신 releaesd 버전 (0.7.3)은 IKVM 0.30.00을 사용합니다. 거기에는 IKVM의 다른 버전도 있으며, 모두 역 호환이 가능한 것은 아닙니다. IKVM의 최신 버전을 사용한다고 믿어지는 또 다른 베타 PDFBox가 있습니다.

PdfBox의 버전 관리 된 버전마다 필요한 IKVM 라이브러리가 릴리스 zip 파일에 있음을 확신합니다. 최신 버전의 IKVM과 호환되지 않을 수 있으므로 릴리스와 함께 제공되는 버전을 사용해야합니다.

+0

감사합니다. Nick, 최근 릴리스의 소스 포지가 업데이트 된 것처럼 보이지만, 1.0 릴리스가 있지만 sourceforge는 .7.3을 최신으로 나열합니다. http://pdfbox.apache.org/download.html#pdfbox 제 문제는 1.0에 IKVM DLL이 더 이상 포함되지 않고 '처음부터'IKVM을 사용하여 제대로 생성되지 않는 것입니다. 프로덕션 시스템 용으로 1.0을 사용하고 싶지만 시도 할 예정입니다 .7.3 – ELG

+0

@Evan - 현재 프로덕션 시스템에서 0.7.3을 사용하고 있으며, 최소한 내가 사용하는 용도로는 작동합니다 잘 됐네. 귀하의 마일리지가 다를 수 있습니다. – Nick

1

PDFBox 1.0을 사용하는 방법을 스스로 고민하면서이 질문을 보았습니다. NoClassFound 오류는 참조 된 jar ("외부"라는 폴더에 있음)를 찾을 수 없어 생성 된 것 같습니다. 여기에 내가 마침내 작업을 얻을 수 있었다 방법은 다음과 같습니다

  1. 는 "외부"폴더에 pdfbox-1.0.0 jar 파일을 넣어 iKVM을 0.30.00에서
  2. 을 바이너리를 사용 (쉽게 참조 할 수 있습니다)
  3. 명령 행에서 을 실행하십시오. lkvmc.exe -target : 라이브러리 -out : "[출력 경로] \ netpdfbox.dll" "[PDFBox 경로] \ *. jar" < - * .jar은 IKVM이 실행하도록 지시합니다. include 모든 jar 파일을 하나의 큰 어셈블리로 사용

출력 파일을 포함 할 수 있어야합니다. d .dll을 C# 코드에 추가하십시오. 어떤 문제없이 다음 코드를 실행할 수있었습니다 :

PDDocument doc = PDDocument.load("test.pdf"); 
string output = new PDFTextStripper().getText(doc);