2013-12-10 1 views
0

У меня возникла проблема с преобразованием определенного кода из C# в VB.
C# КодC# на VB.net Преобразование/перевод кода

const string filename = "C:\Sample.pdf"; 
PdfDocument document = PdfReader.Open(filename); 

int imageCount = 0; 
// Iterate pages 
foreach (PdfPage page in document.Pages) 
{ 
    // Get resources dictionary 
    PdfDictionary resources = page.Elements.GetDictionary("/Resources"); 
    if (resources != null) 
    { 
    // Get external objects dictionary 
    PdfDictionary xObjects = resources.Elements.GetDictionary("/XObject"); 
    if (xObjects != null) 
    { 
     ICollection<PdfItem> items = xObjects.Elements.Values; 
     // Iterate references to external objects 
     foreach (PdfItem item in items) 
     { 
     PdfReference reference = item as PdfReference; 
     if (reference != null) 
      { 
      PdfDictionary xObject = reference.Value as PdfDictionary; 
      // Is external object an image? 
      if (xObject != null && xObject.Elements.GetString("/Subtype") == "/Image") 
      { 
       ExportImage(xObject, ref imageCount); 
      } 
      } 
     } 
     } 
    } 
    } 

То, что я сделал до сих пор является:
VB код

Dim filename As String = "C:\Sample.pdf" 
Dim document As PdfDocument = PdfReader.Open(filename) 
Dim imageCount As Integer = 0 

For Each page In document.Pages 
    Dim resources As PdfDictionary 
    resources = page.Elements.GetDictionary("/Resources") 
    If resources IsNot Nothing Then 
     Dim xObjects As PdfDictionary 
     xObjects = resources.Elements.GetDictionary("/XObject") 
     If xObjects IsNot Nothing Then 
      Dim items As ICollection(Of PdfItem) = xObjects.Elements.Values 
      For Each item In items 
       'Dim item As PdfReference 
       Dim reference As PdfReference 
       reference = item as PdfReference 
       ' ^^I dont know how to do this on VB 

      Next 
     End If 
    End If 
Next 

Итак, подведем итог, это строка кода, которая дает мне проблему преобразования :

C#

PdfReference reference = item as PdfReference; 

VB.Net

Dim reference As PdfReference 
reference = item as PdfReference // this gives me an error. 
+2

Вы можете найти свой ответ в f ollowing SO question: http://stackoverflow.com/q/2450185/637425 – SynerCoder

+0

Я предполагаю, что это так, это больше не дает мне ошибку. Спасибо: D Как я могу закрыть эту тему? – Codemunkeee

+0

Я сделаю ответ из этого. – SynerCoder

ответ

0

Как указано в this SO answer:

Это TryCast:

Dim х As String = TryCast (у, String)

Или в вашем случае:

Dim reference As PdfReference 
reference = TryCast(item, PdfReference) 
1

Есть ли у вас правильный импорт заявления и ссылки на проекты?

Вы также можете просто попробовать инструмент преобразования, как:

http://converter.telerik.com/

+0

Yup, спасибо. Я уже добавил ссылки на свой код. – Codemunkeee

1

вы можете использовать онлайн-инструменты преобразования языка language convertor

For Each page As PdfPage In document.Pages 
    ' Get resources dictionary 
    Dim resources As PdfDictionary = page.Elements.GetDictionary("/Resources") 
    If resources IsNot Nothing Then 
     ' Get external objects dictionary 
     Dim xObjects As PdfDictionary = resources.Elements.GetDictionary("/XObject") 
     If xObjects IsNot Nothing Then 
      Dim items As ICollection(Of PdfItem) = xObjects.Elements.Values 
      ' Iterate references to external objects 
      For Each item As PdfItem In items 
       Dim reference As PdfReference = TryCast(item, PdfReference) 
       If reference IsNot Nothing Then 
        Dim xObject As PdfDictionary = TryCast(reference.Value, PdfDictionary) 
        ' Is external object an image? 
        If xObject IsNot Nothing AndAlso xObject.Elements.GetString("/Subtype") = "/Image" Then 
         ExportImage(xObject, imageCount) 
        End If 
       End If 
      Next 
     End If 
    End If 
Next 
+0

Вау, это версия VB.Net от pdfsharp? – Codemunkeee

+0

О, извините. Это был конвертер языка, спасибо, сначала попробуйте сначала – Codemunkeee

+0

да используйте код –

0

Это должно работать:

Dim reference as PdfReference = TryCast(item, PdfReference) 
+0

Если вы это делаете, то вы можете сделать 'Dim reference = TryCast (item, PdfReference)' –

 Смежные вопросы

  • Нет связанных вопросов^_^