I am working on an application where I am using a third-party PDF viewer PDFtron. I can select the text over the canvas, but once I inspect it, I can't see the text overlay. Only the annotations are there. You can check the demo here.
If I can select the text on this, but it's not actually 'HTML' then how it's rendered on the canvas.
Simply, I am looking for the HTML overlay, which I can access through DOM APIs.
I am wondering if I can somehow enable it?
Texts are rendered on the canvas, so that's why when you inspect you can not see them.
If you want the texts added to the DOM, you can try turn on the Accessibility mode - https://www.pdftron.com/documentation/web/samples/advanced/#accessibility.
And you can also try extract the text - https://www.pdftron.com/documentation/web/guides/extraction/text-extract/. Or get the information on the selected text using events - https://www.pdftron.com/documentation/web/guides/extraction/selected-text/.
Related
We are trying to incorporate an image within a link on an Acumatica report.
We are very close to getting the result we need with the 2018R2 version and have a strategy for a workaround in the 2018R1 version.
The TextBox control Is the only way we have found so far that will allow for setting a hyperlink within an invoice report definition. We are able to set a background image in the Appearance/Style/BackImage property. The only way we can get the whole image to be clickable is to have text span the whole control which is fine if we can set the text font to use a transparent color. Setting the Appearance/Style/Color seems to be the property to do this however when the report is previewed the font gets overridden and displayed as the standard Hyperlink color. The behavior when the report is rendered as a PDF via Acumatica’s email delivery system the font appears white. See Images for a visual.
Transparent Text in Report Preview
Transparent Text in Rendered PDF
There looks to be an Appearance/StyleName property for the TextBox control is there an underlying CSS file that can be further manipulated to also control the LinkText properties to display the LinkText in a transparent font? If yes is there any documentation that would help with doing this.
The 2018R1 versions and prior do not render a clickable link within a PDF if the above strategy is used. Per the ticket, I opened last week on the topic the only way to get this link is to have the whole URL on a single line.
PDFs rendered from a invoice definition hosting a hyperlink will not create a clickable link
This makes it a challenge to control the placement of the image to be centered as well as having only the space within the first line as being clickable. We have solved this in a different ERP system by having multiple links overlapping a background image also using transparent font. This required us to set the Z order so that the link controls are rendered on top of the back-ground image. The Acumatica Report Designer however appears to not have the ability to control Z order. Any attempt to place a link overtop of an image does not achieve the result we are looking for. If we can get this strategy to work we will likely also use it for the 2018R2+ versions to keep things consistent.
This screenshot depicts the strategy attempted.
Are there any other strategies to meet this requirement?
Thanks in advance.
For Version 2018 R2:
You can use the TextBox->Style->BackImage property to show the image and the NavigateUrl property to set the URL link. Html mode doesn't display back image but PDF mode will display it fine and the image link works:
For Version 2018 R1:
Unfortunately I didn't find a way to achieve this because I can't get the text to render transparent when it is located over an image.
There is z-order control (bring to front/send to back) in the report designer toolbar and right click context-menu. The problem here is that while the report designer supports overlapping control the report renderer doesn't. If controls are overlapping, when printing the report the overlapping controls won't get rendered on top of another like they are in the designer.
Having overlapping controls isn't really required here because we can display the image with the Textbox Style->BackImage property or with the Report->Style->BackImage.
It's also possible to make text font size bigger so you don't need multiple text box or set multiline=true with textwrap=false and repeat link on each line.
But the main issue remains rendering transparent text over an image. I couldn't find a way to do that. When there's an image under the text, the text is no longer transparent. That behavior happens for the textbox background image as well as the global report background image. This suggests to me that it might not be possible to put transparent text on top:
I noticed that the report's designs preview and printed are different.
I found it that all of the reports are the same.
So I tried to create new test report and notice that background colors are not rendered on print.
How too keep the design when printing?
Design:
+++
Printed:
By default Reports are rendered in HTML mode. As is often the case with HTML, the report as seen in the browser uses a different CSS style then the one sent to the browser print dialog. I'm pretty sure the reason for this is to accommodate printer technology. Printing solid dark backgrounds uses up a lot of ink and text is more legible when it's black text over a white background.
With HTML rendering, browser view and print preview differ to accommodate printer limitations:
HTML was never meant for accurate rendering anyway so I think the CSS change is for the better but if you want exact result just switch to PDF mode which is meant to provide accurate rendering. Print preview should match very closely the PDF rendering in browser when the report is displayed in PDF mode:
It can get tiring to manually switch to PDF each time by clicking the rendering mode button so you can change the default mode in the report configuration:
It is also possible to edit your custom reports or the standard ones so they default to PDF rendering in the browser instead of the current HTML default:
To edit report you will need to install Acumatica Report Designer (it is in Acumatica ERP Windows Installer) and use the EDIT REPORT button and then use Save to Server file menu item in the report designer to save the report modifications:
Have you checked the Background Graphics checkbox in the printing dialog of your printing preview program? It's primarily in the More Settings section.
Please find below example for Google Chrome's dialog:
I am displaying richtext on my web page. and have added an italic text, but it does no show as italic, just normal text.
when I look in developer tool it looks like the xsp.css is setting font-style to inherit but I can't decide what it inherits from.
how can I find out what is causing the italic to not being set correctly?
I created an empty database with a form and an xpage and seem to get the same problem
the result is the same in Chrome, Firefox and IE
In Developer Tools go to the second tab on the right called Computed. Here you can find "font-style" and see what style sheets are used to compute the styling.
Here's an example from an XPages app that uses the OneUI theme:
Can I put a HTML code in my chrome extension's icon? According to the Google API (setBadgeText) this isn't possible.
Is there any way to put it there?
While .setBadgeText is, as implied by name, text-only, you can draw anything and set that as your icon.
You'll need to draw on a <canvas>, extract image data and use .setIcon({imageData: /*...*/}) to update the icon.
See this question for a brief example, and maybe this article.
It's not quite "using HTML", but with some work you can output anything to your icon.
Badge is plain text only as can be seen in source code. There's no way around.
I am having a problem with the flash viewer and embedded SVG fonts.
I am dynamically changing the content of a element using
javascript. When I do this with the default system font, the text
updates beautifully, however when I use an embedded SVG font and the
flash viewer, changing the context of the element does not
delete the previous contents, it just prints the new contents over the
old.
This only happens with the flash renderer. If I use the native viewers
on firefox or safari, the embedded fonts work perfectly.
Has anyone seen this before? Is there a better way to dynamically
change the value of a text element besides doing this:
svgDoc.getElementById('text1').childNodes[0].nodeValue = customText
There are some other ways to set text content sure. If you are ok with the children of that node being overwritten, then textContent is quite handy for example:
svgDoc.getElementById('text1').textContent = customText (spec link)
If you need very fine-grained control you can look up the Text node properties.
I guess you can always try removing the child elements of your text element if that's what causes repainting issues in SVGWeb. Also you should create an SVGWeb issue so that the bug can get fixed in a future release.