User Tools

Site Tools


kicad:good_pdf_output_from_kicad

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
Last revisionBoth sides next revision
kicad:good_pdf_output_from_kicad [2013/05/20 07:52] – created mithatkicad:good_pdf_output_from_kicad [2013/06/23 00:00] – [SVG version] mithat
Line 1: Line 1:
-The most reliable way to get good PDF output from Eeschema under Linux is to first export to PostScript (//File > Plot > Plot PostScript//) and then use the ''ps2pdf'' command from ''[[http://www.ghostscript.com/|ghostscript]]'' to convert to PDF. (The Arch wiki has a [[https://wiki.archlinux.org/index.php/Ps2pdf|good writeup]] on ps2pdf.)+====== Good PDF output from KiCad in Linux ====== 
 + 
 +There are several ways to generate PDF documents of Eeschema files under Linux. The most reliable way I've found is to first plot to PostScript (//File > Plot > Plot PostScript//) and then use the ''ps2pdf''((The [[https://wiki.archlinux.org/index.php/Ps2pdf|Arch wiki]] has a good writeup on ''ps2pdf''.)) command from ''[[http://www.ghostscript.com/|ghostscript]]'' to convert to PDF: 
 + 
 +<code bash>ps2pdf -dOptimize=true -sPAPERSIZE=11x17 *.ps</code>
  
 The biggest problems with this are: The biggest problems with this are:
Line 6: Line 10:
   - It leaves you with both a PostScript and a PDF of the document(s), one of which is likely to get out of sync with the other, which may or may not be in sync with the actual schematic, etc.   - It leaves you with both a PostScript and a PDF of the document(s), one of which is likely to get out of sync with the other, which may or may not be in sync with the actual schematic, etc.
  
-To help with this, I use the script below. I drop a copy of it into the root of a KiCad project and edit the ''OPTIONS'' as needed for the project. Then whenever I want PDFs of my schematics, I export PostScript from Eeschema and then click on this script in my file manager. Note that running this script will destroy any ''*.ps'' files in the directory---that’s by design.+To help with this, I use the script below. I drop a copy of it into the root of a KiCad project and edit the ''OPTIONS'' as needed for the project. Then whenever I want PDFs of my schematics, I plot PostScript from Eeschema and then click on this script in my file manager. Note that running this script will destroy any ''*.ps'' files in the directory---that’s by design.
  
 <file bash makepdf> <file bash makepdf>
Line 26: Line 30:
 done</file> done</file>
  
-I’ve not tried the script on any PostScript files other than those produced by Eeschema, but I’ve got no reason to think it won’t work on other PS files as well.+I’ve not tried the script on PostScript files other than those produced by Eeschema, but I’ve got no reason to think it won’t work on other PostScript files as well. 
 + 
 +===== SVG version ===== 
 +I am currently testing the following for working from SVG files rather than PS. It also uses a GUI dialog based interface. It needs more testing before I'm comfortable "releasing" it. 
 + 
 +<file bash svg2pdf-d> 
 +#!/bin/bash 
 + 
 +######################################################################## 
 +# This program is free software: you can redistribute it and/or modify 
 +# it under the terms of the GNU General Public License as published by 
 +# the Free Software Foundation, either version 3 of the License, or 
 +# (at your option) any later version. 
 +
 +# This program is distributed in the hope that it will be useful, 
 +# but WITHOUT ANY WARRANTY; without even the implied warranty of 
 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
 +# GNU General Public License for more details. 
 +
 +# You should have received a copy of the GNU General Public License 
 +# along with this program.  If not, see <http://www.gnu.org/licenses/>
 +######################################################################## 
 + 
 +# Copyright (C) 2013 Mithat Konar <http://mithatkonar.com> 
 + 
 +# DESTRUCTIVELY convert all svg files in working directory to pdf. 
 +# Source file extension is case sensitive! 
 + 
 +# Requires inkscape, gxmessage. 
 + 
 +OPTIONS="" 
 +EXT=.svg 
 +SCRIPTNAME=$(basename $0) 
 + 
 +# Make list of files to be processed. 
 +FILES=$(ls -1 *${EXT}) || { gxmessage -title "$SCRIPTNAME" "No ${EXT} files to convert."; exit 1; } 
 + 
 +# Get confirmation from user to continue. 
 +gxmessage -title "$SCRIPTNAME"
 +  -buttons "GTK_STOCK_NO:1,GTK_STOCK_YES:0"
 +  -default "GTK_STOCK_YES"
 +"Desctructively convert the following to PDF? 
 + 
 +$FILES" || exit 1 
 + 
 +# Make a temp file to store batch commands. 
 +CMDFILE=$(mktemp) || { gxmessage -title "$SCRIPTNAME" "Error: Could not create temp file." 1>&2; exit 1; } 
 + 
 +# Build up the list of commands in temp file. 
 +for file in $FILES 
 +do 
 +    base=$(basename $file ${EXT}) 
 +    echo "${file} --export-pdf=${base}.pdf" >> $CMDFILE 
 +done 
 + 
 +# Process commands in a batch. 
 +DISPLAY= inkscape ${OPTIONS} --shell < $CMDFILE 
 +rm -f $CMDFILE 
 +echo 
 + 
 +# Delete old files. 
 +# Since inkscape exits with 0 even with errors, we need to explicitly check 
 +# for conversion before deleting originals. 
 +rv=0 
 +not_deleted="" 
 +for file in $FILES 
 +do 
 +    base=$(basename $file ${EXT}) 
 +    if [[ -f ${base}.pdf ]]; then 
 +        rm $file 
 +    else 
 +        not_deleted="$not_deleted 
 +$file" 
 +        rv=1 
 +    fi 
 +done 
 + 
 +if [[ "x$not_deleted" != "x" ]] ; then 
 +    gxmessage -title "$SCRIPTNAME"
 +      "The following files were not deleted: 
 +$not_deleted" 
 +fi 
 +exit $rv 
 +</file> 
kicad/good_pdf_output_from_kicad.txt · Last modified: 2013/06/26 02:18 by mithat

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki