2017-10-30 11 views
0

私はこの問題をしばらく解決しようとしています。私は私のプログラムのために最新のPDFBox(2.0.7)とFontBox(2.0.7)を持っていますが、私が何をしても、同じコンパイルエラーが発生しています。ここでは、このクラス内のPdfbox - PDType0Font.loadのシンボルが見つかりません

は、私の関連の輸入は、次のとおりです。

import org.apache.pdfbox.pdmodel.PDDocument; 
import org.apache.pdfbox.pdmodel.PDPage; 
import org.apache.pdfbox.pdmodel.PDPageContentStream; 
import org.apache.pdfbox.pdmodel.font.PDFont; 
import org.apache.pdfbox.pdmodel.font.PDTrueTypeFont; 
import org.apache.pdfbox.pdmodel.font.PDType0Font; 
import org.apache.pdfbox.pdmodel.font.PDType1Font; 
import org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject; 
import org.apache.pdfbox.pdmodel.common.PDRectangle; 

私は、次のサンプルでフォントを設定しようとしています:私が述べたように、残念ながら

PDDocument pdfDoc = new PDDocument(); 
PDPage page = new PDPage(); 
pdfDoc.addPage(page); 

PDPageContentStream contents = new PDPageContentStream(pdfDoc, page); 
PDFont font = PDType0Font.load(pdfDoc, new File("/path/to/font/Roboto-Regular.ttf")); 
contents.setFont(font, 20); 

、私が取得します毎回コンパイルエラーが発生する:

error: cannot find symbol 
PDFont font = PDType0Font.load(pdfDoc, new File("/path/to/font/Roboto-Regular.ttf")); 
symbol: method load(PDDocument,File) 
location: class PDType0Font 

私はJavadocs multip私はそのメソッドがそこにあることを確認するためにJARファイルをオープンしました。そして、インターフェースPDFontの代わりにPDType0Fontのインスタンスとして "フォント"を初期化するなどの他の試みを試みました。同じエラー。私は2.0.7のためにウェブサイトが提供する全てのJARをインポートしようとしました。 (Preflight、xmpbox、pdfbox-tools、pdfbox-debugger)、私はまだ同じエラーが発生します。私はpdmodelパッケージとpdmodel.fontパッケージからすべてのクラスをインポートしようとしました。同じエラー。他のすべてはうまく動作します - これはちょうどこの1つの特定の方法です。当初私はPDType0Fontの代わりにPDTrueTypeFontを使用していましたが、それは問題ありませんでした。しかし、私は外来文字のためPDType0Fontに切り替える必要があります。

EDIT:解決済み。私のクラスパスにある古くなったTika JARが衝突を起こし、PDFBoxをバージョン1.8.13に戻していたことが判明しました。

+0

問題はちょうどあなたが使用した環境にあるかもしれませんか?どのプロジェクト構築システムを使用していますか?問題を再現するサンプルプロジェクト全体を添付できますか? –

+1

見えないタイプミスでしょうか?そのコード行をもう一度入力してみてください。もう一つの可能​​性は、あなたのクラスパスに古くなったり壊れたpdfboxライブラリを持っていることです。削除して再度ロードしてみるか、mavenを使用している場合はリポジトリを削除してください。 IDEで新しいプロジェクトを開始します。 IDEのキャッシュを削除してください。 –

+0

私は経験から話す...私はNetbeansでこれが起こった。 Netbeansキャッシュを削除することは助けになりました。 –

答えて

1

この問題は解決されました。私のクラスパスに矛盾があったことが分かります。私はその中にPDFBox 1.8を持っていた非常に古くなったTika JARを持っていたので、私はTikaを最新のバージョンに更新し、もはや問題はありません。解決策を提案したTilman Hausherrに感謝します。

クラスパスに古い.jarファイルがありますか? Exception e = new COSVisitorException(new Exception());を追加してみてください。その1が動作する場合、それはあなたがあなたのクラスパスに1.8バージョンを持っていることを意味し(そして、あなたがすべきではありません!)

Pdfbox - Cannot find symbol for PDType0Font.load

関連する問題