How to edit a PDF file with Open Office
Some months ago I’ve looked for a decent PDF editor for Linux. Results? Only an application called PDFedit was interesenting enought.
Now, an extension (plugin) for the cross platform suite Open Office called PDF Import do the magic with a nice PDF import for Open Office Draw.
I’ve tested it on a simple PDF document (v. 1.0.1) and the result is amazing. With Open Office, you can rewrite a PDF, save it as Draw document and export the modified version as PDF format with the handy PDF conversion tool.
Since PDF is a widely used format, you can use tool like this to download documents that require some changes before print (e.g. a paper form) without awful cut-and-paste onto an editor.
Related links:
- http://sourceforge.net/projects/pdfedit/ a PDF editor for Linux / cygwin
- http://extensions.services.openoffice.org/project/pdfimport an extension to open and modify PDF with Open Office
***
Happy GNU Year to all readers, I’m glad of all of the the 100k visits of this little blog!
PDF cover thumbnails for attached files
This howto has been superseded by http://drupal.org/node/815816 (patch for Upload preview module).
Tested on:
- Drupal 5.x
- Content Templates module
- ImageMagick 6.3.7
- GhostScript 8.15.3
Using ImageMagick + GhostScript you can convert the first page of a PDF into a thumbnail image linking to file. You can cut and paste this function on your theme main script: you have to manually create the thumb directory and grant write permission by scripts. Check also the path to ImageMagick convert command.
function pdf_thumb_attachments(){
$allowed_mime = array("application/pdf");
foreach($files as $file){
if(in_array(strtolower($file->filemime),$allowed_mime) && strstr(strtolower($file->description),"classifica")){
$title = $file->description;
if(substr($title,-4)==".pdf"){
# create link title from file name (Transliteration module suggested)
$title = str_replace("_"," ",substr($title,0,strlen($title)-4));
}
$img = "";
$local_src_path = getcwd() . "/" . $file->filepath;
$destfilename = substr($file->filename,0,strlen($file->filename)-4) . ".gif";
# YOUR-FILES-DIRECTORY/pdfgen will hosts the generated thumbnails
$local_dest_path = getcwd() . "/" . file_directory_path() . "/pdfgen/" . $destfilename;
$imageurl = base_path() . file_directory_path() . "/pdfgen/" . $destfilename;
/* create thumbnail on node reading if file doesn't exist */
if(!file_exists($local_dest_path)){
# choose the first page of the PDF, scale to 90x90px and convert to GIF
$exec = '/usr/bin/convert -scale 90x90 "'.$local_src_path.'"[0] "'.$local_dest_path . '"';
shell_exec($exec);
/* delete this line if you cannot read the generated file
$exec = "chmod 777 ".$local_src_path;
shell_exec($exec);
//*/
}
$img = '<img src="'.$imageurl.'" alt="'.$title.'" />';
$output .= "<li>". l($img." ".$title,$file->filepath, $attributes = array("title"=>$title), $query = NULL, $fragment = NULL, $absolute = TRUE, $html = TRUE) . "</li>";
}
}
if(!empty($output)){
$output = '<div class="my-attachments"><ul>' . $output . "</ul></div>";
}
return $output;
}
Update
You can alternatively use imagemagick function provided by image.module (the image.imagemagick.inc file on drupal/includes):
function file_preview_path($filename, $filepath = 'filepreview') {
/** generate jpg thumbnails **/
return $filepath . "/" . substr($filename,0,strlen($filename)-4) . ".jpg";
}
function file_preview(&$file, $pages = Array(1)) {
$allowed_mime = array("application/pdf");
if(in_array(strtolower($file->filemime),$allowed_mime)){
$local_src_path = getcwd() . "/" . $file->filepath;
$local_dest_path = getcwd() . "/" . file_directory_path() . "/" . file_preview_path($file->filename);
# create thumbnail only when needed
$imagemagick = getcwd() . '/includes/' . 'image.imagemagick.inc';
if(!file_exists($local_dest_path) && file_exists($imagemagick)){
include_once($imagemagick);
_image_imagemagick_convert($local_src_path.'[0]',
$local_dest_path, array('-colorspace RGB'));
# all can read thumbnail files
if(file_exists($local_dest_path))
chmod($local_dest_path, 0777);
}
return file_preview_path($file->filename);
}
else{
return FALSE;
}
}
Create nice pdf with ps2pdf and any word processing utility
Apply on: any GNU/Linux distrubution
Applications like OpenOffice allow to export document in the PDF format. However, sometimes the result is not very much professional. To obtain the best from your document in printing, you can follow a two-step conversion using any word processing utility.
- Use the option “Print to file” to convert your document to PostScript format. (i.e. my_document.ps)
- Convert the generated PostScript file in PDF using ps2pdf
Conversion tips:
To generate a document to print (more heavy), with embedded fonts, best image rendering etc. you can use:
ps2pdf -dPDFsettings=/prepress my_document.ps
The “prepress” distiller parameter automatically choose the best settings for print, but you can override it.
See also:
How to use ps2pdf advanced options



Recent Comments