We have begun experiencing cases in which some of the text on a page of a PDF has its text garbled when we use JpegDevice.Process to convert it to an image. I have attached an example of a document for which most of the text on page 7 experiences the issue. The method which is called for each page of the document is provided below. In case it matters, we are always passing in a “scalePercent” of 70. Also, in case it matters, we are calling this method from within a Parallel.ForEach(…).
Hi,
I’ve found that the ScaleByPercent, an extension method created a couple years ago, is no longer necessary. As such, I’ve simply commented out this call, and repeated my test:
Here is the additional file I referred to in my reply above.
Perhaps if it continues to work on your side, you could send me some sample code you’re using to make it work? I could compare that code with my entire call stack, and try to pinpoint any place I might be doing something different?
I missed sending you the ImageToByteArray method called in the return statement of ProcessJPG:
Hi,
Hi,
<span class=“kwrd” style=“color: rgb(0, 0, 255); font-family: “Courier New”, Consolas, Courier, monospace; font-size: small; white-space: pre;”>for<span style=“font-family: “Courier New”, Consolas, Courier, monospace; font-size: small; white-space: pre; background-color: rgb(255, 255, 255);”> (<span class=“kwrd” style=“color: rgb(0, 0, 255); font-family: “Courier New”, Consolas, Courier, monospace; font-size: small; white-space: pre;”>int<span style=“font-family: “Courier New”, Consolas, Courier, monospace; font-size: small; white-space: pre; background-color: rgb(255, 255, 255);”> pageCount = 1; pageCount <= pdfDocument.Pages.Count; pageCount++)<span style=“font-family: “Courier New”, Consolas, Courier, monospace; font-size: small; white-space: pre; background-color: rgb(255, 255, 255);”>
{<span style=“font-family: “Courier New”, Consolas, Courier, monospace; font-size: small; white-space: pre; background-color: rgb(255, 255, 255);”>
<span class=“kwrd” style=“color: rgb(0, 0, 255); font-family: “Courier New”, Consolas, Courier, monospace; font-size: small; white-space: pre;”>using<span style=“font-family: “Courier New”, Consolas, Courier, monospace; font-size: small; white-space: pre; background-color: rgb(255, 255, 255);”> (FileStream imageStream = <span class=“kwrd” style=“color: rgb(0, 0, 255); font-family: “Courier New”, Consolas, Courier, monospace; font-size: small; white-space: pre;”>new<span style=“font-family: “Courier New”, Consolas, Courier, monospace; font-size: small; white-space: pre; background-color: rgb(255, 255, 255);”> FileStream(@“C:\Pdf\test88\image” + pageCount + “_out” + “.jpg”, FileMode.Create))<span style=“font-family: “Courier New”, Consolas, Courier, monospace; font-size: small; white-space: pre; background-color: rgb(255, 255, 255);”>
{<span style=“font-family: “Courier New”, Consolas, Courier, monospace; font-size: small; white-space: pre; background-color: rgb(255, 255, 255);”>
Resolution resolution = <span class=“kwrd” style=“color: rgb(0, 0, 255); font-family: “Courier New”, Consolas, Courier, monospace; font-size: small; white-space: pre;”>new<span style=“font-family: “Courier New”, Consolas, Courier, monospace; font-size: small; white-space: pre; background-color: rgb(255, 255, 255);”> Resolution(200);<span style=“font-family: “Courier New”, Consolas, Courier, monospace; font-size: small; white-space: pre; background-color: rgb(255, 255, 255);”>
JpegDevice jpegDevice = <span class=“kwrd” style=“color: rgb(0, 0, 255); font-family: “Courier New”, Consolas, Courier, monospace; font-size: small; white-space: pre;”>new<span style=“font-family: “Courier New”, Consolas, Courier, monospace; font-size: small; white-space: pre; background-color: rgb(255, 255, 255);”> JpegDevice(resolution, 60);<span style=“font-family: “Courier New”, Consolas, Courier, monospace; font-size: small; white-space: pre; background-color: rgb(255, 255, 255);”>
<span class=“rem” style=“color: rgb(0, 128, 0); font-family: “Courier New”, Consolas, Courier, monospace; font-size: small; white-space: pre;”>// Convert a particular page and save the image to stream<span style=“font-family: “Courier New”, Consolas, Courier, monospace; font-size: small; white-space: pre; background-color: rgb(255, 255, 255);”>
jpegDevice.Process(pdfDocument.Pages[pageCount], imageStream);<span style=“font-family: “Courier New”, Consolas, Courier, monospace; font-size: small; white-space: pre; background-color: rgb(255, 255, 255);”>
<span class=“rem” style=“color: rgb(0, 128, 0); font-family: “Courier New”, Consolas, Courier, monospace; font-size: small; white-space: pre;”>// Close stream<span style=“font-family: “Courier New”, Consolas, Courier, monospace; font-size: small; white-space: pre; background-color: rgb(255, 255, 255);”>
imageStream.Close();<span style=“font-family: “Courier New”, Consolas, Courier, monospace; font-size: small; white-space: pre; background-color: rgb(255, 255, 255);”>
}<br style=“font-family: “Courier New”, Consolas, Courier, monospace; font-size: small; white-space: pre;”><span style=“font-family: “Courier New”, Consolas, Courier, monospace; font-size: small; white-space: pre; background-color: rgb(255, 255, 255);”>}
Here’s a small snapshot of a portion of the first page of the document I attached yesterday:
Also, I know it likely doesn’t help much, but I used your code to replace the code in my method, plus I added code to write out both the image of the page, as well as the page (both attached). Here’s my code with your code in it:
Hi,
Would you have any estimate as to when this issue (PDFNET-42879) might be addressed?
Hi,
I don’t see any attachments?
I rebuilt my application with v17.6, but still get the same two pages of offset text. We’ll likely just switch to a different imaging tool, as there is obviously something different between our run environment (AWS EC2 / Beanstalk) and yours.
Hi,