2012-12-21 127 views
0

我有以下代碼C# - 呼叫不成功

org.pdfclown.objects.PdfDictionary dict = new org.pdfclown.objects.PdfDictionary(); 
org.pdfclown.objects.PdfName name; 
name = dict[org.pdfclown.objects.PdfName.AcroForm]; 

我想做的事是看是否在應用程序加載的文件已經得到了AcroFrom場我在想,如果我可以打電話給

dict[org.pdfclown.objects.PdfName.AcroForm]; 
以某種方式,現在出現的錯誤

Error 2 Cannot implicitly convert type 
'org.pdfclown.objects.PdfDirectObject' to 'org.pdfclown.objects.PdfName'. 
An explicit conversion exists (are you missing a cast?) 
C:\ImpressionContext (1)\ImpressionContext\ImpressionContext\ContextDialogue.cs 
184 20 ImpressionContext 

原來的要求是,以檢測是否形式是AcroForm或如果它是一個Xfa形式

是否有smeway可能,以便我可以去字典中的PdfName.AcroForm並獲取存儲在這裏的值。

+1

如果您在文件的頂部添加一些using語句您的代碼可能更容易閱讀,例如'使用org.pdfclown.objects;'。 –

+0

試着改善這個問題的標題。 –

+0

難道你不能只用'name =(org.pdfclown.objects.PdfName)dict [org.pdfclown.objects.PdfName.AcroForm]''強制轉換嗎?順便說一句,你**真的**需要開始使用'using'語句... – khellang

回答

1

這裏的字典返回PdfDirectObject-type值。你需要做的是將返回的值轉換爲PdfName

name = dict[org.pdfclown.objects.PdfName.AcroForm] 
      as org.pdfclown.objects.PdfName; 
if(name != null) 
{ 
    //work with name 
} 
0

PdfDictionary返回org.pdfclown.objects.PdfDirectObject對象,但你想有一個org.pdfclown.objects.PdfName對象。所以你需要投它。

您可以使用:

name = dict[org.pdfclown.objects.PdfName.AcroForm] 
      as org.pdfclown.objects.PdfName; // Cast it to PdfName