You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I am having trouble to get images with .Net5.0.
Here is the code I am using:
using PdfSharp.Pdf;
using PdfSharp.Pdf.Advanced;
using System.IO;
using PdfSharp.Pdf.IO;
using System.Drawing;
using JBig2Decoder;
using System.Collections.Generic;
//....
public class Service{
public void OcrPdfs()
{
const string filename = "20211214.pdf";
PdfDocument document = PdfReader.Open(filename);
int imageCount = 0;
int i = 0;
// Iterate pages
foreach (PdfPage page in document.Pages)
{
i++;
// 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;
var cals = xObject.Elements.Values;
// Is external object an image?
if (xObject != null && xObject.Elements.GetString("/Subtype") == "/Image")
{
ExportImage(xObject, ref imageCount);
}
}
}
}
}
}
}
static void ExportImage(PdfDictionary image, ref int count)
{
string filter = image.Elements.GetName("/Filter");
switch (filter)
{
case "/DCTDecode":
//ExportJpegImage(image, ref count);
break;
case "/FlateDecode":
//ExportAsPngImage(image, ref count);
break;
case "/JBIG2Decode":
JDec(image, ref count);
break;
case "/JPXDecode":
break;
default:
break;
}
}
private static void JDec(PdfDictionary image, ref int count)
{
var decoder = new JBIG2StreamDecoder();
var stream = decoder.decodeJBIG2(image.Stream.Value); // error line
var ms = new MemoryStream(stream);
var img = Bitmap.FromStream(ms);
FileStream fs = new FileStream(String.Format("Image{0}.jpeg", count++), FileMode.Create, FileAccess.Write);
BinaryWriter bw = new BinaryWriter(fs);
bw.Write(stream);
bw.Close();
}
}
I am getting error on the specified line (error line): Could not load file or assembly 'PresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'. The system cannot find the file specified.
I am having trouble to get images with .Net5.0.
Here is the code I am using:
I am getting error on the specified line (error line):
Could not load file or assembly 'PresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'. The system cannot find the file specified.
The pdf file is: https://www.resmigazete.gov.tr/eskiler/2021/12/20211214.pdf . What is the reason?
And could you please add some more usages.
The text was updated successfully, but these errors were encountered: