5.6 KiB
Introduction
This zine helps in navigating the zine_maker code, a small software tool derived from pyPDF library. The code is written in Python, and provides a few scripts for creating covers, colophons, content, and also signatures for preparing a PDF for the printer. The scripts run with python version 3.x.x and we can feed to the scripts inputs and outputs. As an input, we give the path to a text file, which shall create the text and images content of the zine, and as an output we give a the path/filename of our choice. We can also run the scripts with no input nor output, in which case, they take as default parameters the readme text from the text/ folder and produce an output to either of the folders covers, colophons, body, or zines, depending on which script we are running each time.
Get the code
Download the source code
As of 2021-2022, the code is under active development by the author and can be cloned and/or downloaded from https://git.systerserver.net/mara/zine_maker. To download the project, near the top of the gitlab page, click on the download icon next to "Find file". You can choose which type of archived folder you want, and then open it in your filesystem, by right clicking the archived folder, or from the terminal:
tar -xvf zine_maker.tar -C /home/user/destination
unzip zinme_maker.zip -d /home/user/destination
OR use git clone:
git clone https://zine:DskM_8XxtKt-Wym1xHd1@git.systerserver.net/mara/zine_maker.git
cd zine_maker
Requirements
Basic requirements are listed here. Python3 should be installed on the computer https://www.python.org/downloads/
And also the pip command if it didn't get installed with Python https://pip.pypa.io/en/stable/installation/
Once these are installed, from within zine_maker folder run:
pip install -r requirements.txt
Miscellaneous
Fonts
The source code comes with some fonts under the fonts folder. You can use your fonts of preference by adding them either in the fonts folder and edit the files cover.py, colophon.py and doc_pdf.py to give the new names. Or add your absolute font path directly to the python scripts.
Text
The input texts should be clean from characters added by some text editors or
Operating Systems. Use the cat command to check your text is ready as input
with:
cat --show-nonprinting input.txt
Symbols such as M-oM-;M or ^M (carriage Return / line feed) need to be removed.
A cool tool for that is dos2unix, which is available as command line, but needs
to be installed:
dos2unix filename
Or with the sed command:
sed -e "s/\r//g" file > newfile
Extensive info can be find at: https://www.cyberciti.biz/faq/sed-remove-m-and-line-feeds-under-unix-linux-bsd-appleosx/
Layout
All the font styling happens in the zine_maker function create_pages(). The input text is parsed for specific tags or symbols in the begining of each line and changes to the font color and size happen accordingly. We can add more or edit existing rules, directly in the zine_maker code.
Parameters
The python scripts cover.py, colophon.py and doc_pdf.py take a text input and an output filename. If we give no input/output, the default input is the related readme files under covers/body/colophons/
Merge
For merging the cover, body and colophon pdf files, there are many pdf merger tools. One that is command line based and is used in this tutorial is pdfunite http://linux-commands-examples.com/pdfunite
For shuffling the final pdf and prepare it for printing you need the pdfseparate command http://www.linux-commands-examples.com/pdfseparate it is used inside the shuffle_pdf.py file (see details at the end of this README).
Images
For making use of images in the script image magick needs to be installed http://www.imagemagick.org/
Run the code!
Make the content of the pdf
The default parameters included in the script would create a zine from this
readme:
python doc_pdf.py
OR you can experiment with the other sample text found in this repository.
python doc_pdf.py text/images.txt body/images.pdf
OR get real and add your own text file and replace respectively the input and output filenames.
python doc_pdf.py text/<your_file>.txt body/<output-name>.pdf
Make the cover of the pdf
Same, the default parameters included in the script would create the cover for the zine_maker:
python cover.py
OR try-out the other cover samples:
python cover.py text/cover.txt covers/cover.pdf
OR add your cover text file and replace respectively:
python cover.py text/<your-cover>.txt covers/<cover-name>.pdf
Make the colophon of the pdf
Same, the default parameters included in the script would create the colophon for the zine_maker:
python colophon.py
OR try-out the other colophon samples:
python colophon.py text/colophon.txt colophons/colophon.pdf
OR add your own colophon text file and replace respectively:
python colophon.py text/<your-colophon>.txt colophons/<output-colophon>.pdf
Make a screen PDF
For the final screen version
from the terminal run:
pdfunite covers/cover.pdf body/body.pdf colophons/colophon.pdf zines/final.pdf
You shall substitute the file paths to the your own corresponding /path/filenames
See this readme as the generated screen version zine:
open the file zines/zinemaker.pdf
Make a zine
Prepare signatures for printing
./thumbs/printer_settings.png
Default parameters: as input "zines/zinemaker_screen.pdf" and as output "zinemaker{random_number}.pdf"
Run it for your own pdf files as following:
python shuffle_pdf.py zines/.pdf zines/.pdf`
In the printer settings opt-in for the following settings:
- A4 Landscape
- Two pages per side
- Double side - short edge