I like to paste but have an option to retain all formatting but have all images stripped. This is particularly useful when users are pasting content from emails to record against a trouble ticket but don't want the image content to be included namely as most of the time the images are in the signature of the emails and in long threads these images don't paste well
I know we can do a ctrl-shift-v paste which does plain text but it loses all the formatting which is a plain than for a user to go through a big paste and format the message
I like this feature either with a new button or a popup asking user if they like to strip out images when an image is detected in a paste
Related
When using PDFBox to populate a text field in a form in a PDF, it is possible that the text overflows the text field and is not visible when opening the PDF in a viewer.
Question: Is it possible to use PDFBox to detect how much text within a text field is visible?
At the risk of falling victim to an XY problem, here is the context in which this came up.
I have a PDF which is provided by the Danish government, and the software I am creating needs to be able to fill out this form programmatically. On pages 5 and 6 of this document, there is a large blank area that needs to be filled out. The way the PDF creators designed it, they just made two text fields (named Text57 and Text58), which a person directly filling out the form would manually need to jump between.
The problem is, I need to be able to populate these fields with text, and if the text is too large to fit in the first text field, then it needs to overflow into the second text field. However, I do not seem to have any way of actually detecting when the text overflows in the first text field.
One workaround which could be acceptable, would be if I could modify the document to remove the second text field, and just have the first text field span multiple pages, but while playing around in Acrobat, this does not seem to be possible.
The PDF in question can be found here: https://www.trafikstyrelsen.dk/~/media/Dokumenter/10%20Bolig/Bolig/Private%20lejeboliger/Lejekontrakt/typeformular-a.pdf
Here is a code snippet which populates the problematic field with 100 lines numbered from 1 to 100.
PDDocument document = PDDocument.load(new File("typeformular-a.pdf"));
PDField text57 = document.getDocumentCatalog().getAcroForm().getField("Text57");
text57.setValue(IntStream.range(1, 101).mapToObj(Integer::toString)
.collect(Collectors.joining(System.lineSeparator())));
document.save("typeformular-a.out.pdf");
After the code is run, we can see that the text gets cut off after line 44. Of course I cannot simply count lines in my text, because under normal circumstances the lines in the text will wrap, which would invalidate that approach.
Auxiliary question: Is there any other approach that could solve this original problem of splitting text across multiple pages?
I have 1700 PDF datasheets that contain a set of text and image boxes. The underlying template of each datasheet is the same, but the contents of the boxes vary. I'd like to find a program that lets me take the modified text box contents (summarized in an excel table) and repopulate the original sheets.
I have extracted the information from the text boxes using the "Merge Data files into an excel file" under the Prepare Form tool in Adobe DC and have used a variety of =Substitute functions in excel to change the contents of the text boxes to what I want. What I would like to do now is use a program to go back to the original .PDF and overwrite the original fields. I would just run a mail merge on this normally, but I don't have access to the images anymore so the image boxes would be blank.
Alternatively I've considered using something like Pulover Macro Creator to step through the excel list and paste in the contents into every sheet, but I'm hoping that there's an existing piece of software to do this.
I have an existing PDF template, and I want to add some text over the top of it in a specific location on a specific page. For example, an invoice template or a scanned document.
How would I go about this? I'm using Sheets if that narrows my options.
There is a lot of documentation on how to create PDFs from documents, but nothing that will take a particular PDF and put text over it.
A bit of blue sky thinking from my side. What if you were to do the following?
Manually:
Export the PDF as an image
Resize a Google slide to be the same shape as the image
Add the image to the google slide as a background image
In Code:
Make a copy of the google slide as needed
Add your Google sheets data to the slide positioned as needed on the slide
Export the Google slide as a pdf
I mention google slides, because Google docs to not have allow background images.
Another possibility with using Google docs is to build a document that looks like your invoice, then add to it tags. In your code search for the tags and replace them with data from your sheet. Even you could use a mail merge addon to do this if you didn't fancy writing any code.
In your Google Drive right-click on your PDF;
Open With > Connect More Apps > Search docusign > Left-click blue connect button and this should take you to Docusign.
Your PDF will then open with Docusign where you can manually add a signature or text to specific places.
Alternatively... You can use App Script.
Example,
Constructing a document using HTML and replacing the specific value with a variable which is collect from a Sheet or particular location. Writing the function to do this will allow you to interpret the HTML and replace the variable with the text or possibly an image. Then it would create this as a PDF.
There are many alternative ways to do this.
Here is one example on github;
Convert Google Doc to PDF using App Script
I have some VBA that takes the contents of a few different worksheets, and prints them to PDF. I'm trying to add a watermark type effect to each page that gets printed. However, not every page will receive the same watermark. I have a textbox that will correctly get updated as the VBA is running, and will always have what I want my "watermark" to be. I've gotten to the point where I can copy the textbox and paste it in a specific location, but I need to be able to paste it in multiple locations, which will not always be the same. I'm looking for each page to contain the "watermark" and for it to be centered (and potentially resized down to the dimensions of the page in a case where the watermark is larger than the page). Additionally, the number of pages added to the PDF by the sheet is variable, but all pages should always receive the "watermark". I have virtually no background in VBA. The below code was produced by recording a macro.
Sheets("Sheet 1").Select
ActiveSheet.Shapes.Range(Array("TextBox 3")).Select
Selection.Copy
Sheets("Sheet 2").Select
Range("C16").SelectActiveSheet.Paste
I need the paste location to be dynamic and centered in the middle of the printed page. I also need the image to appear on each printed page.
Any help would be greatly appreciated.
Edit: One of the things the existing VBA does is print all the pages on the worksheet to PDF. It then changes values of the pages, and prints them to PDF as well. I need the watermark to update when the values do, which is currently working. The problem I am having is that when the values change, the number of rows change, and so does the page count. If I had a static page count I would just add the watermark (which is already updating as needed) everywhere it's supposed to be.
I have been tasked with updating a spreadsheet that produces a report by replacing text in a template. Previously, the worksheet referenced an outside/separate file-- my job is to get it working in an embedded document.
I currently have text form fields for every input I want to insert within the embedded document template. As it stands, users can edit the document template however they like, but if they accidentally erase a text form field (again, where text is replaced via the vba macro) then it will break the macro and the spreadsheet will be useless.
My question:
Is there some way to lock or protect text form fields such that the rest of the document is editable? I essentially want to have the inverse of a "text form field only" protection.
Alternatively, is there a better way to approach this project? I'm thinking of leaving the spreadsheet as is, but including a "reset" button bringing the template back to it's original state if anything breaks. If I did this method, this would require there NOT to be an external file. Attempts to do this so far have proven unsuccessful.
My general methodology/algorithm goes as follows:
Open the reference document
Replace all the text form fields via bookmarks with plain text,
making sure to reassign the bookmarks afterward (so as to not lose
them if they run the macro more than once).
Save the embedded document as a .doc with the inputs inserted
Replace all bookmarked inputs with text form fields to return the
template to its original state
Any information would be IMMENSELY appreciated. I am slowly running out of time and am feeling stuck.
Many thanks!
-Sooji