Showing posts with label pdf. Show all posts
Showing posts with label pdf. Show all posts

Thursday, July 3, 2008

PDF bookmarks editor

This is the GUI version of the jpdfbookmarks editor i published some days ago.

All the command line features are still available with the same syntax so i will not repeat here those instructions, but i strongly suggest to upgrade to the new version also if you don't plan to use the GUI.

If you used the linux installer to install the previous version, you must uninstall it before you install the new one, to do that launch the uninstall program which is located in the program installation folder as root. If instead you used the zip archive it's sufficent to delete the unzipped folder to uninstall the old version.
I created installers for linux and windows, while other operating systems users can download the zip archive version, i remind you that this is a java program so you need a Java Runtime Environment (version 5 or later) to run it.

To use the linux installer remember to give the downloaded file execution permissions, this can be done right clicking on it and choosing properties on most desktop environments or with the command:

chmod +x jpdfbookmarks-1.1.0-Linux-x86-Install

If you use the installers you can launch the application easily by using the shortcut created in your main menu, but if you have problems you can always enter the directory where you installed the program and launch the command:

java -jar jpdfbookmarks.jar

If you use the zip archive you can launch the prgram entering the folder where you unzipped it and on linux launch the command:

./jpdfbookmarks

or on any other systems

java -jar jpdfbookmarks.jar

On Windows you should be able to launch it double clicking jpdfbookmarks.exe but you can always use the above command if needed.

First of all, i want to remind you the limits of this software, so that you don't waste your time downloading it if it's not what you are looking for.
  • bookmarks can point to a page but not to a specific point within a page, like other commercial software can do;
  • previous limitation apply also to existing bookmarks that you or someone else created with other software, so when you save the pdf file with jpdfbookmarks all the bookmarks will have page precision, no information of were to point within the page is preserved (so i suggest to backup the original file to avoid data loss);
  • bookmarks to URL or other resources out of the document are not supported;
  • this software is not a pdf reader, so you need to use other programs to check where to put bookmarks and to test the new files, for example Adobe Reader, kpdf, evince etc.;
  • this software is freeware and a one person project so no assistance is possible, anyway post comments, suggestions end bugs here or to my mail and i will try to help.
Usage is very easy, when you open a pdf file the bookmarks structure (if any) is represented on a tree control, where each node is a bookmark with a title and a page number indicated after a '-' character.


The title and page information for the selected node are also displayed and editable in a table below the tree.

You can open one pdf file at a time, if you close the program after you have made modifications or if you try to open a new file the program will ask you to save the the previous. You can save the pdf file with another name using the appropriate button or menu item.

Actions on bookmarks are accessible through the Edit menu (and the associated shortcut key), the tool bar buttons or the tree context menu, most of them are only active when there is a selected node, i will only refer to menu items in this description, but you can use what you prefer.

If no bookmark is selected or if there are no bookmarks in the current pdf, you can add a new one using the Edit->Add Sibling menu item, which will add a first level bookmark. If there is a bookmark selected, that command will add a bookmark of the same level after the selected one.
You can edit the title and page number directly in the tree or using the table below the tree.

To start editing in the tree select a node then use Edit->Edit menu item, or press F2, then write what you prefer as title and type the page number after a '-' character at the end of the line.

To add a child to a selected bookmark use the Edit->Add Child command and then edit as before.

To delete a selected bookmark use Edit->Delete, the program will ask for confirmation before deleting because also all the child bookmarks of the selected one will be canceled with it, and there is no undo functionality, so pay attention to this.

To move a bookmark from a position to another in the hierarchy you can drag and drop from one position to another, all its children will be moved with him so you can move only up in the hierarchy or within the same level. If you drag over the icon of a bookmark, a gray line will show you where it will be dropped, while if you drag over the text of a bookmark it will be dropped as the child of that bookmark. If dragging you stop for a while on a collapsed node, it will expand giving you the possibility to drop inside of it, if you stop on an already expanded node it will collapse again. You can also scroll the tree moving out of its bounds while dragging if needed.

For instructions on how to use the command line interface go to my previous post here.

Please post here any suggestion or bug you will eventually find, or just to tell me you are using this program, this will make the difference for me to choose between continuing to develop this software (adding features and correcting bugs) or moving to the next thing.




Tuesday, June 10, 2008

Command-line PDF bookmarks editor

Hi all, i wrote a command line utility program called jpdfbookmarks to add bookmarks to an existing pdf file.
I could not find anything easy and free on the net for this simple task, so i decided to write my own and now i'm going to publish it here, for those who need the same functionality.

This is a java program and i have packaged it to an installer for linux users, but should work with any operating system as long as you have installed a java runtime environment version 5 or later. If you don't have it or you are unsure you have it go to sun java site and check.

It' is very simple and not features rich but is really straightforward to understand its usage. First you have to create a simple text file which will represent the structure of your bookmarks using your favorite plain text editor, each line of text is a bookmark item written in the form:

Chapter 1. The Beginning/3
Para 1.1 Child of first level/5
Para 1.1.2 Child of second level/9
Para 1.2 Another Child of first level/14
Chapter 2. The Continue/27

where the part on the left of the / is the title of the bookmark and the part on the right is the target page of the bookmark. Text indentation represents the hierarchy of the outlines and must be obtained with "tab characters" (spaces will not work). Each bookmark will point to the top of the page indicated in its line, there is no way to point to another position in the page at present time. Once you have the file, save it to the same folder where you have the pdf file it refers to with a name like bookmarks.txt, then assuming that the original pdf name is input.pdf and that we want to save modified pdf as output.pdf, launch the command:
jpdfbookmarks --apply input.pdf bookmarks.txt output.pdf

If output.pdf already exists or if you indicate input.pdf as ouput file, the program will print a warning and ask for confirmation before overwriting, i suggest that you never overwrite existing files to avoid loss of data as this program is not tested enough, so please be carefull and write always to a new file, i will not fill responsible for any data corruption you eventually will experience.
If your original pdf file already have bookmarks they will be erased and substituted by the new ones, if you want to preserve or use them as the base of your bookmarks.txt file you can use the command:

jpdfbookmarks --dump input.pdf > bookmarks.txt

After this command you can open bookmarks.txt with your editor to modify it before applying it again to the pdf.

If you need a quick help during your work use the command:

jpdfbookmarks --help

The esiest way to install the program on Linux should be to download the Linux installer from the link below and afer giving it execution permissions double click it in your desktop environment, the installer will prompt you for the root password and guide you through the installation, it works fine on my ubuntu laptop but if you have problems on your machines post here and hope for some help.
An alternative if you have problems on linux with the installer or if you want to use the program on other operating systems, is to download the zip archive, again from the link below, and extract it where you prefer. In this case to use the program you have to open a terminal inside the directory where you have extracted, copy there the files you are working on and launch the commands like the following example:

On Linux:

./jpdfbookmarks --apply input.pdf bookmarks.txt output.pdf

./jpdfbookmarks --dump input.pdf > bookmarks.txt

On all systems:

java -jar jpdfbookmarks.jar --apply input.pdf bookmarks.txt output.pdf
java -jar jpdfbookmarks.jar --dump input.pdf > bookmarks.txt
or if your desktop recognizes jar files as executables you may try:

jpdfbookmarks.jar --apply input.pdf bookmarks.txt output.pdf
jpdfbookmarks.jar --dump input.pdf > bookmarks.txt


The program is freeware and the license for it and for the libraries it uses are distributed and installed with it. If you find this program useful, want to suggest something or signal a bug please post here, i will appreciate your contribution.