2012-12-21 128 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