Edit source code of Impress odp file - libreoffice-impress

I want to edit the source code of an Impress file (.odp) but when I open it is just machine coded.
I want to do it because when I converted files from PowerPoint to an Impress File some parts got mixed up. Like for example footer and numbering can't be changed globally. So by editing the source code, I hope to be able to use find/replace in a Text Editor.

LibreOffice formats are zipped archives primarily containing XML files. So unzip the .odp and then edit content.xml.
When finished, zip it back up, making sure to zip it from the correct directory (the one that contains content.xml).
Documentation: https://help.libreoffice.org/Common/XML_File_Formats#XML_file_structure.

If you are using a Mac do the following:
Change the .odp extension to .zip by manually clicking the icon and renaming the file
Unzip the file using something other than the standard Archiver (I used Keka)
You will see the folder of contents including the content.xml which you can easily edit now
Crucial: Go into the directory with your separate files, select all the files then hit 'compress' from the options menu when you right click
Next, rename the .zip to .odp and the file will open successfully
I found that if you don't do option 4 above exactly then the file is slightly different and won't open due to a corruption message.

Related

Add link to PDF within a PDF file using relative addressing

I want to add a link to some text within a PDF that will bring up another PDF that is located in the same folder. I wish to use relative addressing so that the PDF suite is transportable to other users and computers. I wish this to work on Linux and Macs.
LibreOffice Draw, despite promises, writes out the link address as a full path. Thus if taken to another computer with another user the link fails to work.
I tried manually editing the PDF files using vi and altered the link syntax so;
<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[940.9 480.3 1200.7 507.9]/A<</Type/Action/S/URI/URI(Content/Information.pdf)>>
where the target file, "Information.pdf" is in a subdirectory "Contents".
On Linux using Document Viewer, it works! On an Apple, Preview (a PDF viewer) interprets the target file needs to be opened by some application. Adobe Reader doesn't like this syntax either. I tried prefixing the filename with the keyword "file:" which works for a full path but not with relative addressing.
Does anyone know what syntax might work for me
Editing a PDF you can select text and add a hyperlink using LibreOffice Draw. It is then possible to edit the PDF file with a text editor such as vi.
To find the line with the link search for the filename of the target. One problem is that LibreOffice insists in using a fully qualified domain name to locate the file and this won't work after the file is moved, say to another computer. The unedited line should be similar to;
<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[940.9 480.3 1200.7 507.9]/A<</Type/Action/S/URI/URI(File:<fullpathname>/Content/Information.pdf)>>
Where Content/Information.pdf is the link target in the same directory as the linking pdf. This line should be changed to
<</Type/Annot/Subtype/Link/Border[0 0 0]/Rect[940.9 480.3 1200.7 507.9]/A<</Type/Action/S /Launch/F(Content/Information.pdf)>>
This works on Unix and MacOs

Excel on Mac. Cannot open IQY file in Data/Get External Data/Run Web Query

I am running Excel version 16.45 on Mac.
I have created a .iqy and saved it in the Queries directory alongside certain templates which were already there.
I go to Data/Get External Data/Run Web Queries. While the templates are accessible, my file is visible but greyed out (same thing happens if I save the file in a different directory).
Would anyone be able to help?
According to your information, I would like to confirm whether the issue occurs when you follow the steps as below:
1.Create a Word file, paste the web URL.
2.Save the Word as .iqy with .txt format.
3.Choose MS-DOS as coding.
4.Create an Excel file and click "Data >Get External Data >Run Web Query (Or Run Saved Query) " of the Bar
I was able to address the issue as follows.
When navigating to the relevant directory with Finder, the '.iqy' file appears to be appropriately named (as per Image 1).
In fact, if you reach the file in Terminal, the file is saved as '.iqy.txt'.
So all I had to do is rename the file, simply removing the '.txt' string at the end.
Screen you see when navigating in Finder

Obtain the "absolute path to the workbook" from an .xls file

When I use the Excel "Document Inspector" on a particular .xls file to check for "hidden properties or personal information" it says:
The following document information was found:
* Absolute path to the workbook
How can I obtain the absolute path of the workbook from the file? If it needs to be done programmatically, I could use Java (e.g. Apache POI) or VBA.
I know where the file is currently saved, but what I want to extract is the absolute path to the workbook which is saved in the file I have. This is so I can know where it was saved by the author.
Here's what has happened to the file:
Someone authored it, saving it at some absolute filepath unknown to me
They uploaded it to a website
I downloaded it from the website
Excel indicates that the document contains the absolute path from step 1. I'm after this path, not the place I saved it at step 3 since I know that.
I can reproduced that warning message by simply creating an empty Excel file, added a formula, saved it as BIFF8 (.xls). The Document Inspector will then warn about the absolute path. ... but in my case, there was no filename inside the file.
A simple way to verify this, is to open the file in a hex-editor and search for a well-known save location (i.e. the location where a dummy/test file was stored) - this is either stored as ASCII or as 16-bit string, i.e. every odd byte is a character.
If you want to use the POI developer tools, you can use the following:
To list all Excel records:
java -cp poi-3.16-beta1.jar org.apache.poi.hssf.dev.BiffViewer file.xls
To list the document and summary properties:
java -cp poi-3.16-beta1.jar org.apache.poi.hpsf.extractor.HPSFPropertiesExtractor file.xls
To list any embedded objects beside the usual suspects SummaryInformation, DocumentSummaryInformation and Workbook:
java -cp poi-3.16-beta1.jar org.apache.poi.poifs.dev.POIFSLister file.xls
So after running the tools and recording the output, you can then remove the properties via the Excel Document Inspector and execute the tools again. The output can be diffed and you might find the culprit.
Assuming it is an .xlsx file rather than an older-style .xls file, you can
Rename the workbook as a .zip file
Look at the xl\workbook.xml "file" within the .zip file
and you will find the absolute path when last saved from Excel.
This is why it is not a good idea to share work-related spreadsheets with other people, unless you first clear out this sort of information.
I'm not sure how to find it in the binary format files.

Why replacing the value of xml node in custom xml part in word 2013 document makes it corrupt?

I created a Word 2013 document and did the following:
Added a Plain Text Content Control to it at design time.
Added a Custom Xml Part at design time.
Did a mapping from one node of Custom Xml Part to the Plain Text Content Control.
The value of node appeared in the Content control.
I saved and closed the document.
Renamed it to .zip and extracted it to a folder.
Edited the file in folder customXml/item1.xml which is my custom xml part and changed the value of node from <Name>John</Name> to <Name>Harry</Name>.
Re archived it as a zip file and renamed it to .docx.
When I opened the document, it was corrupted and Microsoft Word says:-
We're sorry. We can't open XYZ.docx because we found a problem with the contents. Microsoft Office cannot open this file because some parts are missing or invalid.
Reason - You cannot unzip and re-zip your .docx file as you did in Step 8
Guide - Try this. Create a dummy .docx file form word. Extract it and re-zip it and try to open the file. You will get the same error and you will not be able to use it as you expect.
Solution - If you want to edit your .docx file , use Open XML SDK and do it. Here is a link to a good guide - http://msdn.microsoft.com/EN-US/library/office/cc850833(v=office.15).aspx . And also Open XML productivity tool will come in handy - http://dotnet.dzone.com/articles/using-openxml-sdk-productivity
I was zipping and unzipping incorrectly. We don't need any Open XML SDK.
What I was doing was: Right click on XYZ.docx.zip and select Extract to XYZ.docx. When it got extracted into the folder XYZ.docx, I edited the contents inside and then zipped the entire folder to XYZ.docx which is wrong.
When I got inside of folder and zipped only the contents to XYZ.docx.zip, it started working.

Aspell Dictionary can't be opened

When I try to add a word or to ignore all, Aspell throws the error 'the file "C:/Program Files (x86)/Aspell/en.pws" cannot be opened for writing'. Anyone know what is causing this problem and how to fix it?
Ensure that the security settings of the "C:/Program Files (x86)/Aspell" folder for the current user allow for modifying and writing.
I had the same issue, and this cleared it right up.
Here is some help to the missing en.pws and en.prepl files. I have no idea why the developers failed to provide this simple solution for windows.
Go to the directory of "Aspell", which should have been installed as a sub-directory of NotePad++.
Right click in the main Aspell directory, choose "New" then choose "text document".
Rename the new text document as "en.pws" (without quotes) removing the "txt" extension, press enter key.
Repeat, make another new text document and rename it to "en.prepl".
Open up en.pws in NotePad++
copy and paste the following into en.pws, exactly as below;
personal_ws-1.1 en 2
µÄ
(Note: the µÄ symbols are below, on a new line below personal_ws-1.1 en 2)
Go to the Menu in NotePad++, click "Encoding" and make sure that "Encoding ANSI" is chosen (Dot beside it).
Save file and close file.
Open the en.prepl file in NotePad++
Copy and paste the following into that file;
personal_repl-1.1 en 0
Same, make sure the "Encode ANSI" is chosen.
Save and close file.
Note: you must close each file before using NotePad++ Spell Checker and "learn" button. Else it corrupts the file and you have to redo it.
NotePad++ will now work and you can save words to the ".pws" file.
Possible locations of GNU Aspell custom words file:
%localappdata%\VirtualStore\Program Files\Aspell
%programfiles%\Aspell
For English for example the custom words file is named en.pws (file name = language code) and the very first line must look like:
personal_ws-1.1 en 286
Where "en" is the file name (=language) and 286 are the number of words (lines) in that file. Last line must is always empty. GNU Aspell does not allow words ending with a number (e.g. Beta1). If you have such a word in your pws file Aspell or the application that uses it (e.g. Notepad++) may crash/hang ...
You may have to delete your en.pws file and create a new one (e.g. using Notepad++). File format as described above, otherwise GNU Aspell will fail to work.
I took the read only off of "C:/Program Files/Aspell" folder.
N++ still says
GNU Aspell
Error:
The file "C:/Program Files/Aspell/en.pws can not be opened for writing.
The english .50 dictionary install does not do a proper install into your C:/Program Files/Aspell directories. I had to open the Installer .EXE in WinRAR and copy the folders.
Should I copy the English dictionalry installer into my C:/Program Files/Aspell folder and install from there?
"Ensure that the security settings of the "C:/Program Files (x86)/Aspell" folder for the current user allow for modifying and writing"
"I took the read only off of "C:/Program Files/Aspell" folder. [The error message remains]"
It's not a read-only problem, but permissions. In Security give "Users" "Full control" over the .prepl and .pws files.
The Answer by "sth" and "Mark" is good, but it still has permissions issues in Windows 10. Instead of creating the two files in the Program Files folder for Aspell, create and initialize them on your desktop first; that will give your account full control on the files. (Also, set the encoding before you paste the initializing text.) Then move the two files into the Program Files folder for Aspell, and they will retain the full write permissions of your account without messing with the overall permissions of the Program Files folder for Aspell.