What is the status of PDFNET-46912?

It was mentioned in Replacement of LTR Text to RTL Text Results RTL-Text-In-LTR-Order.
That topic is not active since 3 years.

@itamarcognyte

Regretfully, the ticket could not get resolved due to its complexity level and number of the API components needed to be changed to implement its fix. Nevertheless, the issue priority has been escalated to the next level after recording your concerns. We will surely update you via respective forum thread once it is resolved or we have any news about its fix ETA.

We apologize for the inconvenience.

Is there any workaround for this issue?

Does Aspose has, or know of, a client library that can handle the reverse order of the characters, when searching (Ctrl+F) text in the document?

10x

@itamarcognyte

We are afraid that we cannot offer any workaround at the moment as the ticket has not been yet completely investigated. Nevertheless, we will surely let you know as soon as we come up with some solution for this issue. We humbly apologize for the inconvenience.

If we purchase paid support, would you be able to fix this?

@itamarcognyte

Please note that paid support does not guarantee any immediate solutions however, it does expedite the investigation process and you get fix ETA quicker. Also, the issues in paid support have the highest priority and posses precedence over the issues logged under free support model. Once you create a topic in the paid support forum with the ticket ID reference, you issue will be escalated to the respective priority at once.

Thanks for your answer.

Can you give an estimate whether this issue can be solved at all?
Can a paid support guarantee a fix?

That ticket (Replacement of LTR Text to RTL Text Results RTL-Text-In-LTR-Order) is inactive since 3 years. So I’m assuming it’s not trivial to fix.

@itamarcognyte

We do resolve every logged issue and some times the resolution of the ticket gets delayed due to some factors like its complexity and other high priority tasks. Nevertheless, we will soon let you know about the ETA in case you go for paid support option.

thanks,
I’m waiting to hear about the ETA, so we can get a decision if to purchase paid support.

@itamarcognyte

We are investigating the ticket to get an ETA and will soon try to share it with you. Please give us little time.

The issues you have found earlier (filed as PDFNET-46912) have been fixed in Aspose.PDF for .NET 22.12.

good news!
can we expect a Java fix any time soon?

@itamarcognyte

The same fix will be part of equivalent version of Java API which will be released in the end of this month. Furthermore, this issue was specifically related to the .NET Core environment. Apart from the components required for .NET Core, every functionality of 22.12 version will be ported into Aspose.PDF for Java 22.12.

I do hope this will be fixed in the Java API, as we encounter it using Java.
Were you (Aspose) able to reproduce it with Aspose for Java?

@itamarcognyte

Would you please share your sample PDF and code snippet using which you have faced this issue in Java? We need to perform testing using your sample files.

Please find attached 3 files: the original DOCX (doc_arabic.docx (12.9 KB)), its conversion to PDF (doc_arabic.pdf (55.2 KB)), and the PDF conversion to HTML (doc_arabic.html.zip (177.0 KB)).

In the docx and the PDF we can find صخري , but not in the HTML.
In the HTML we can only find the reverse order. I’m adding this as a screenshot, as when pasted here the direction seems to be handled. image.png (2.8 KB)

It may look the same, but the direction is not. Put it in a textual editor and you’ll see.

Sorry for the trouble but can you please also share the code snippet as requested before?

String htmlFilePath = “full_path_to_html.html”;
com.aspose.pdf.Document pdfFile = new com.aspose.pdf.Document(java.io.InputStream pdfAsStream);
final com.aspose.pdf.HtmlSaveOptions saveOptions = new com.aspose.pdf.HtmlSaveOptions();
saveOptions.RasterImagesSavingMode = com.aspose.pdf.HtmlSaveOptions.RasterImagesSavingModes.AsEmbeddedPartsOfPngPageBackground;
saveOptions.FontSavingMode = com.aspose.pdf.HtmlSaveOptions.FontSavingModes.SaveInAllFormats;
saveOptions.PartsEmbeddingMode = com.aspose.pdf.HtmlSaveOptions.PartsEmbeddingModes.EmbedAllIntoHtml;
saveOptions.LettersPositioningMethod = LettersPositioningMethods.UseEmUnitsAndCompensationOfRoundingErrorsInCss;
// force write HTMLs of all pages into one output document
saveOptions.setSplitIntoPages(false);
saveOptions.CustomHtmlSavingStrategy = new CustomHtmlPageMarkupSavingStrategy(htmlFilePath);
pdfFile.save(htmlFilePath, saveOptions);

class CustomHtmlPageMarkupSavingStrategy extends com.aspose.pdf.HtmlSaveOptions.HtmlPageMarkupSavingStrategy {
private final String filename;

@Override
public void invoke(final com.aspose.pdf.HtmlSaveOptions.HtmlPageMarkupSavingInfo htmlSavingInfo) {
    try (final java.io.FileOutputStream fos = new java.io.FileOutputStream(filename)) {
        final byte[] resultHtmlAsBytes = new byte[htmlSavingInfo.ContentStream.available()];
        htmlSavingInfo.ContentStream.read(resultHtmlAsBytes, 0, resultHtmlAsBytes.length);
        fos.write(resultHtmlAsBytes);
    } catch (final Exception e) {
        throw new ConversionException("Failed to convert PDF file to HTML", e);
    }
}

public CustomHtmlPageMarkupSavingStrategy(final String filename) {
    this.filename = filename;
}

}

@itamarcognyte

We are checking it and will get back to you shortly.