![]() |
PrincePDF: PDF export
1 Attachment(s)
PrincePDF: export epubs as .pdf files
(based on prince xml) Current Version: "0.3.0" This plugin is a very simple prince PDF output wrapper, which allows you to export the currently loaded epub as a .pdf file. This plugin does not support non-standard epubs. Select Tools > Restructure Epub to Sigil Norm before running this plugin with Sigil 1.0 and higher. Credits: This plugin was inspired by Jellby's Calibre prince plugin. Jellby was also extremely helpful in tracking down a Windows prince issue and provided other helpful pointers. If you encounter problems with my plugin I strongly recommend that you give Jellby's more polished version a try, which also comes with a nice GUI. System requirements If you're using an older Sigil version, you'll need to install a Python 3.4.x interpreter (the plugin won't work with Python 2.7.x) and select its path in the Manage Plugins dialog box. You'll obviously also need to install prince, which can't be bundled with the plugin for licensing reasons. (Make sure to install prince in the default location.) Note that prince will add a tiny watermark in the upper right corner of the first page. However, it can be easily deleted with Acrobat Reader. Installation 1. Select Manage Plugins from the Plugins menu. In the Manage Plugins dialog box, select Use Bundled Python, if it isn't already selected. (If your Sigil version doesn't have a Use Bundled Python option, click the Python 3.4 button to detect the path or Set to manually select the Python interpreter path.) 2. Click Add Plugin and select PrincePDF_v0.3.0.zip. This will install the plugin, which you can select via Plugins > output > PrincePDF. Preferences This plugin doesn't come with a GUI, but you can change several settings via plugin preference settings. (All of these settings need to be terminated with a comma unless it's the last line in the .json file.) 1. There's a skeleton style.css file in the plugin folder that you can use to customize the pdf output. If you want to use it, update style.css as needed and add the following line to PrincePDF.json: Code:
"style": true,Code:
"output_dir": "C:\\Users\\User\\Desktop",3. You can also define the following values: media, page_size, page_margin, no_author_style and no_default_style, which set the corresponding prince command line values. For example, the following entry will change the page size to A4: Code:
"page_size": "A4",Postprocessing with cpdf If you have cpdf installed, you can reduce the size of the .pdf file generated by Prince with cpdf. (Depending on the epub source files, this'll reduce the file size by up to 10%.) This option is disabled by default. To enable it, change the following entry in PrincePDF.json: Code:
"cpdf": true,You'll also need to download the cpdf Community Release binaries and copy the binary file to a system folder, for example C:\Windows. License: GNU General Public License v3 (GPL-3) |
Hi Doitsu,
Wow you have been busy. I agree with Kovid that if given a preference between fixed layout format epubs and pdf, I would choose pdf. So it is nice to have something like this so save people a few steps. I will add it to the Plugin Index. Thanks! |
Hi, great plug-in it work perfectly. I normally use calibre to convert epub to pdf so I was very happy to use Sigil also for this conversion, I already use the great kindlegen plugin for mobi and azw3. So I tried PrincePDF on various book and it work fine but, I am amazed to say this, I think that the calibre pdf are better than the prince pdf.
The prince pdf: have good margin of the page; the hyperlink between page work. On the cons side: the font preset is times new roman, but I use it normally so it's not really a problem; If the image is more large than the page they don't got risize; I also have some problem with little immage; the TAB space don't get recognized; I will still try it with more book but first I want to ask two question: 1 - How set the dimension of the font in the style.css for h1, h2,...? 2 - How can change font if I need? Also a style.css example with more indication will be usefull The plug-in is great but the program princepdf is only 7/10 |
Quote:
E.g. Code:
p {Quote:
Code:
h1 {Quote:
Code:
body {Quote:
Also have a look at a CSS tutorial. Quote:
|
Hi
Allowing two display sizes? This PDF plugin is a great tool. I frequently use it to check quickly my EPUB display (after conversion). Also one can find sometimes complex EPUBs which may trigger display problems with Koreader. Then Prince PDF is always at hand to provide me quickly with a perfectly readable ebook. It has an advantage over its Calibre plugin counterpart: we can launch it directly from Sigil without having to register the source EPUB in any database. However, at that time, we can only launch the conversion process with only one fixed display size. The Calibre plugin allows us to choose between two display sizes. Would it be possible to obtain the same functionality? To comment further on it without knowing if it's feasable (forgive me), I can think of an opening screen offering to the user a choice between two display sizes (one being default) or of two distinct versions of the same plugin bearing different names and allowing each the launch of a different size. |
Since the PrincePDF plugin isn't that popular, I'd rather not spend time adding new features.
Quote:
0. Close Sigil. 1. Locate the Sigil plugins folder. 2. Copy the PrincePDF folder and paste it to the same folder. 3. Rename PrincePDF (copy 1) to PrincePDF2. 4. Open plugin.xml and edit the following line: <name>PrincePDF2</name> and save plugin.xml. 5. Copy and rename the plugin preferences folder to PrincePDF2 and change the output size as needed. 6. Restart Sigil. You should see an additional PrincePDF2 output plugin option. |
At least for me, your Prince PDF plugin is of nearly daily use. People don't know what they are missing. :)
Anyway, thank you for this explanation. It will be OK. I'll do it and report back. Edit: yours is a five minutes solution. Working! |
Hi Doitsu,
PrincePDF Plugins dose not work and seen error bellow: Status: failed Traceback (most recent call last): File "C:\Program Files\Sigil\plugin_launchers\python\launcher.py", line 134, in launch target_script = __import__(script_module) File "C:\Users\user\AppData\Local\sigil-ebook\sigil\plugins\PrincePDF\plugin.py", line 29, in <module> prince_path = os.path.join(os.getenv('programfiles(x86)'), 'Prince', 'engine', 'bin', 'prince.exe') File "ntpath.py", line 113, in join File "genericpath.py", line 143, in _check_arg_types TypeError: join() argument must be str or bytes, not 'NoneType' Error: join() argument must be str or bytes, not 'NoneType' ----------------------------------------------------------------- All System requirements install my system but PrincePDF Plugin not work Plugin Status:Failed Please suggest how to solve this problem |
Quote:
1. What's your Windows version? 2. Did you install the Prince executable in the default folder: Code:
C:\Program Files (x86)\Prince |
1 Attachment(s)
Quote:
Hi Doitsu 1. My windows version is Windows 7 Professional and 2. Prince executable folder: C:\Program Files\Prince\prince-gui.exe 3. C:\Python34\python.exe https://www.mobileread.com/forums/at...1&d=1493797552 |
Apparently my code doesn't work with your Windows 7 version and the external interpreter. Enabling the Use Bundled Python option might fix this problem, because the Python version bundled with Sigil is newer than your external interpreter.
If enabling the Use Bundled Python option doesn't fix the problem, you'll have to change the plugin source code:
This should take care of the problem, if it doesn't you could always use Jellby's much more robust and sophisticated Calibre plugin. |
Thank you for this plugin Doitsu !
I'd like to do output Pdf for reading devices : smaller page size, larger font size (18 pt) special fonts. I found also the margins up and down page a bit too small. Beginer's question: How do I find the place to do this kind of change? Could'nt find in plugin.py nor in the files of engine in Prince Programm... Thanks a lot ! |
Quote:
However, this stylesheet isn't used by default. In order to use it, you'll have to edit the PrincePDF.json file and change it from: Code:
{Code:
{To open the folder that contains PrincePDF.json:
To open the folder that contains style.css:
If you find this too complicated, you might want to use Jellby's Calibre Prince plugin, which comes with a nice GUI. |
Based on a suggestion by roger64, I've added cpdf postprocessing support. (cpdf will reduce the file size of the .pdf file generated by Prince by up to 10%.)
If you want to use this feature, download the free cpdf binary and copy it to a system folder, for example, C:\Windows. You'll also need to edit PrincePDF.json and add the following line: Code:
"cpdf": true, |
How easy (or difficult) would you say it might be to port this plugin so that it uses WeasyPrint? It's not as "complete" as Prince is, but from my brief usage it feels like it's good enough for ebooks, and is a free alternative.
|
Quote:
|
PRINCE PDF
Hello,
I'm reaching out about a similar issue with the Prince PDF plug-in. I am a MAC OS user. I downloaded the Prince PDF plug-in and the prince installation file. I am having trouble installing the Prince file. When I open it to install it simply expands to a folder, and within that folder there is an install file (install.sh). When I open this, it simply opens a text file with a lot of code. Do you know if this is supposed to happen? You mention in the plug-in section for Prince PDF on this forum that we need to "Make sure to install prince in the default location." Where is the default location? I'm wondering if this is related to my issue using prince pdf on Sigil. After doing this I tried to use the Prince PDF plug-in in Sigil and it's giving me this response: Status: failed prince not found: /usr/local/bin/prince I have prince in my files but it's not detecting it. Can you help me with this issue? |
Quote:
For detailed instructions see the Prince PDF website. Note that you'll need to replace to prince-9.0-macosx with prince-12.4-macosx. For example: Code:
tar xzf prince-12.4-macosx.tar.gz |
Hi Doitsu;
Would it be possible to modify your "plugin.py" file so the path to Prince.exe is able to be different from the standar location? TIA Rubén |
Quote:
Code:
"prince_path" : "D:\\Program Files (x86)\\Prince\\engine\\bin\\prince.exe",Note also that you'll have to use double backslashes (\\) in Windows paths. |
Quote:
|
Quote:
Code:
{For example: Code:
{ |
Quote:
|
Sigil 1.0.
I have to adapt the output to create my custom 9×12 size. It was easy three years ago, Now I find it difficult... Life goes like that. Can we select a preference which tells the plugin to follow the Sigil structure every time? (furthermore, it seems we have no choice on this regard because it can only work this way) Edit: Done. Would have been quicker if I did not throw away the epub.css file... Happily save exists. |
permission denied error
Hello,
I am trying to run PrincePDF with Sigil. When I run the plugin It seems to be OK but I get a "permission denied" error in the last leg of the process (see below) I run Linux Mint. Thanks ... prince: used font: Times New Roman, Italic prince: /home/xxx/Desktop/xxx.pdf: error: can't open output file: Permission denied prince: Finished: failure Return code: 1 Prince failed! |
Quote:
Code:
"output_dir": "/home/xxx/Desktop/" |
Quote:
It fixed my problem instantly. Thank you very much. Great Sigil plugin :thanks: |
Error
Hello everyone!
I've installed all the prerequisites (Python 3x, PrincePdf, cpdf.exe to the Windows folder), but there's error when launching the plugin: Code:
Status: failed |
Quote:
|
epub to pdf converted book does not contain the cover
Hi,
I am new to this. I am trying to convert my ebooks (which I own and purchased) from epub to pdf. The ebooks are actually DRM free, they are ebooks from raywenderlich but I would like to read them on my pdf e-reader (Quaderno). For this I have installed Calibre and Sigil and the Prince PDF plugin and conversion went fine, actually better than I have expected, except the pdf does not have a cover. Now, the original book when I open in iBooks it does have a cover. But when I open it in ebook-viewer it does not have a cover. So, what is wrong here? Thanks |
PrincePDF and styles.css on Linux
Hi,
I am trying to use the PrincePDF plugin on Sigil 1.6.0 on Linux. I added Code:
"style": true,I put a custom style.css in the following directories, but the plugin does not find it (The epub file is in /home/user): Quote:
Code:
prince: Applying style sheets...The below is just a guess as I cannot code (it did not work), but I also tried temporarily changing the line in plugin.py , from: Code:
stylesheet_path = os.path.join(bk._w.plugin_dir, bk._w.plugin_name, 'style.css')Code:
stylesheet_path = os.path.join('/home/user', 'style.css')Thanks, L |
Quote:
Code:
/home/user/.local/share/sigil-book/sigil/plugins/PrincePDFCode:
prince: loading style sheet: ../style.cssCode:
prince: loading style sheet: /home/<USER>/.local/share/sigil-ebook/sigil/plugins/PrincePDF/style.css |
Hi,
That was the actual output: https://imgur.com/a/BxMx613 https://imgur.com/a/BxMx613 I just ran Sigil from terminal, and I noticed: Quote:
Also, I can now see that I was incorrectly using "styles.css", rather than style.css. |
You don't want to be copying stuff to Sigil's scratch (temp) directory. Bad things can happen. But then the plugin's code doesn't indicate it would be looking for the custom style.css file in that location in the first place.
Did you make sure to run Sigil's Tools > Restructure Epub to Sigil Norm before running the PrincePDF plugin? It sounds to me that there are some pathing issues you're running into. As per the plugin's notes from the first page: Quote:
|
| All times are GMT -4. The time now is 08:28 PM. |
Powered by: vBulletin
Copyright ©2000 - 3.8.5, Jelsoft Enterprises Ltd.
MobileRead.com is a privately owned, operated and funded community.