On 16/12/11 09:55, ~suv wrote:
On 16/12/11 01:41, cpblpublic+usenet@...155... wrote:
> Matplotlib produces pdf figures whose bounding boxes do not enclose all of
> the contents of the figure (or, usually, are too big).
>
> I thought inkscape could easily solve this problem with:
>
> inkscape -f matplotlibOutput.pdf --verb=FitCanvasToDrawing -A prettyfigure.pdf
>
> But that leaves the pdf unchanged. Have I made a basic error?
Try this:
$ cp matplotlibOutput.pdf prettyfigure.pdf
$ inkscape -f prettyfigure.pdf.pdf \
--verb=FitCanvasToDrawing \
--verb=FileSave \
--verb=FileQuit
Note: when using verbs on the command line, the GUI cannot be suppressed
[1] (limits the usefulness of verbs for scripting or when trying to run
Inkscape on a web server as conversion tool): you will need to press
some buttons for commands that have options:
1 - Importing (aka opening) a PDF needs a confirmation in the import
options dialog
2 - Exporting (saving as PDF) also requires a confirmation in the export
options dialog
3 - The warning that you saved in a lossy format makes more sense when
working with the GUI right from the beginning. I'm not aware of a
setting to turn that warning off.
Alternative without needing to press any buttons:
$ inkscape -f matplotlibOutput.pdf -l matplotlibOutput.svg
$ inkscape -f matplotlibOutput.svg --verb=FitCanvasToDrawing \
--verb=FileSave \
--verb=FileQuit
$ inkscape -f matplotlibOutput.svg -A prettyfigure.pdf
$ rm matplotlibOutput.svg
hth, ~suv