петък, 2 декември 2011 г.

Convert png to eps

Yesterday, I had to convert some png files to high quality eps files and it wasn't an option to directly export the figures to eps files. It turned out the problem is not so simple, but anyway, here's what I've found.
First, there are some free programs which enable you to make pretty vector graphs, diagrams and so on: Inkscape, graphviz, TikZ and Ipe. source
The problem in my case was that I have to use png files. What's more, they had to use pretty. Well, the biggest problem seemed to be the resolution. Before exporting the figure to whatever, zoom it to the max. You need at least 300dpi, some say 600dpi. That means a figure which covers the whole computer screen (well, mine is a laptop screen). If you capture it from pdf, then zoom to 300% and then capture the figure. This should produce a decent-looking figure.
More on the issue of resolution:
*Try png2pdf or a similar tool specifying in it interpolation to be off source
* \setlength{\pdfpxdimen}{1in/150} % Define resolution of PDF source
* Convert the png->eps->pdf->eps
1.The resolution of the image in pixels should be 300 times the size of the image in inches as it appears in the document. So for example a 2 inch by 3 inch image should have a resolution of at least 600 by 900.

2. ps2pdf -sPAPERSIZE=letter -dMaxSubsetPct=100 -dCompatibilityLevel=1.3 -dSubsetFonts=true -dEmbedAllFonts=true -dAutoFilterColorImages=false -dAutoFilterGrayImages=false -dColorImageFilter=/FlateEncode -dGrayImageFilter=/FlateEncode -dMonoImageFilter=/FlateEncode Fig1_a.eps Fig1_a.pdf
pdftops -eps Fig1_a.pdf Fig1_a
ps2eps Fig1_a
/home/denijane/Fig1_a.eps source
3. I tried also the following step (but they didn't help)
1. Save a Matlab figure from Matlab to EPS format.
2. Run ps2pdf14 -dPDFSETTINGS=/prepress unembedded_fig.eps embedded_fig.pdf.
Note: You can check the font is embedded by running
pdffonts embedded_fig.pdf
and check that the normal Helvetica font is embedd as BGISHF+Helvetica, for example.
3. You can either build your latex document with pdflatex, usepackage{graphicx} & \includegraphics{embedded_fig.pdf}, OR
4. run pdftops -eps embedded_fig.pdf embedded_fig.eps
5. run ps2eps embedded_fig.eps
which will crop eps to bounding box.
6. rename embedded_fig.eps.eps to embedded_fig.eps
7. Build your latex document with latex, usepackage{graphicx} & \includegraphics{embedded_fig.eps}.

Finally, check the font is embedded by running
pdffonts ~/my_article.pdf
and check that the normal Helvetica font is embedd as BGISHF+Helvetica. source
4. The package bmeps: To convert from png to high level eps use:
bmeps -a -leps image.png
bmeps image.png image.eps
bmeps -l eps2 fbt.png fbt2.eps
And also, the following packages might help:
\usepackage[T1]{fontenc}
\usepackage{ifpdf}
\usepackage{graphicx}
source
For eps file level 3:
bmeps -l eps3 Fig9_b.png Fig9_b.eps
or
convert Fig1_a.png EPS3:Fig1_a.eps

1 коментар:

1. This is one of the most genuine way to convert your JPG or PNG files into PDF! I have one more excellent online source from where you can easily convert JPG to PDF and that too without paying any money!