Skip to content
Open

GUI #19

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
104 changes: 104 additions & 0 deletions automagica-cover.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-

# https://en.wikibooks.org/wiki/LaTeX/Colors

from __future__ import division, print_function, unicode_literals

import site; site.addsitedir("/usr/local/lib/python2.7/site-packages")

import os
import sys

from pdf import generate_pdf
from template import latex_env
from utils import filepath

import site; site.addsitedir("/usr/local/lib/python2.7/site-packages")
from gooey import Gooey, GooeyParser

reload(sys)
sys.setdefaultencoding('utf8')


def add_color(value, colors):
color_name = 'color_{}'.format(len(colors))
colors.append('\definecolor{{{}}}{}'.format(color_name, value))
return color_name


@Gooey(program_name="Automágica covers", program_description="Generá tapas listas para imprimir", language='spanish',
image_dir='images', default_size=(810, 570))
def main():
parser = GooeyParser()
parser.add_argument('--BASE_FILENAME', default='tapa', metavar="Nombre base de los archivos generados")
parser.add_argument('book_path', help='Carpeta dónde se genera la salida.', metavar='Carpeta', widget='DirChooser'


,default='/Users/juanjo/automagica/trabajos/xolopes/')
parser.add_argument('--TITLE', default='Xolopes', metavar="Título")
parser.add_argument('--AUTHOR', default='Juanjo Conti', metavar="Autor")
parser.add_argument('--COVER_WIDTH', default='12cm', help="Ancho de la tapa. Ej: 12cm.")
parser.add_argument('--COVER_HEIGHT', default='20cm', help="Ancho del lomo. Ej: 20cm.")
parser.add_argument('--SPINE_WIDTH', default='7mm', help="Ancho del lomo. Ej: 10mm.")
parser.add_argument('--SPINE_INTERTEXT_SPACE', default='2cm', help="Separación en el lomo. Ej: cmm.")
parser.add_argument('--TITLE_COLOR', default='{RGB}{176,216,241}', help='Color del título y el nombre del autor.')
parser.add_argument('--TITLE_VSPACE', default='20mm', help="Espacio vertical antes del título. Ej: 20mm.",
metavar='Espacio vertical título')
parser.add_argument('--AUTHOR_VSPACE', default='20mm', help="Espacio vertical antes del nombre del autor. Ej: 20mm.",
metavar='Espacio vertical autor')
parser.add_argument('--COVER_COLOR', default='black', help="Color de fondo de la tapa.")
parser.add_argument('--IMAGE_WIDTH', default='8cm', help="Ancho de la imagen de tapa. Ej: 8cm.",
metavar='Ancho de la imagen')
parser.add_argument('--IMAGE_PATH', help='Imagen de tapa.', metavar='Imagen', widget='FileChooser'

,default='/Users/juanjo/automagica/trabajos/xolopes/chichen2.png')
parser.add_argument('--LOGO_WIDTH', default='3cm', help="Ancho del logo de la editorial. Ej: 4cm.",
metavar='Ancho del logo')
parser.add_argument('--LOGO_PATH', help='Logo de la editorial.', metavar='Logo', widget='FileChooser'
,default='/Users/juanjo/automagica/cover/figures/automagica-celeste.png')
parser.add_argument('--SPINE_LOGO_PATH', help='Logo de la editorial para el lomo.', metavar='Logo en lomo', widget='FileChooser'
,default='/Users/juanjo/automagica/cover/figures/logo-celeste.png')
parser.add_argument('--SPINE_LOGO_WIDTH', help='Ancho del logo de la editorial para el lomo.', default='3mm')
parser.add_argument('--IMAGE_VSPACE', default='90mm', help="Espacio vertical antes de la imagen de tapa. Ej: 90mm.",
metavar='Espacio vertical imagen')
parser.add_argument('--BACK_TEXT', help='Texto de la contratapa.', metavar='Contratapa',
widget='FileChooser', default='/Users/juanjo/automagica/trabajos/xolopes/contratapa.txt')
parser.add_argument('--BACK_TEXT_COLOR', default='{RGB}{176,216,241}', help='Color del texto de la contratapa.')
parser.add_argument('--BACK_VSPACE', default='20mm', help="Espacio vertical antes del texto de contratapa. Ej: 20mm.",
metavar='Espacio vertical contratapa')
args = parser.parse_args()
book_path = args.book_path

VARS = {}
if args.BACK_TEXT:
with open(args.BACK_TEXT, 'r') as back_text_file:
VARS['BACK_TEXT'] = back_text_file.read()
else:
VARS['BACK_TEXT'] = ''
new_colors = []
for k, v in args._get_kwargs():
if not VARS.get(k):
VARS[k] = v
if v:
if v.startswith('{gray}') or v.startswith('{rgb}') or v.startswith('{RGB}')or v.startswith('{HTML}') or v.startswith('{cmyk}'):
VARS[k] = add_color(v, new_colors)


VARS['DEFINED_COLORS'] = '\n'.join(new_colors)

TEMPLATE = os.path.join('cover', 'cover_template.tex')

template = latex_env.get_template(TEMPLATE)

base_filename = VARS['BASE_FILENAME']
VARS['DESCRIPTION'] = VARS['BASE_FILENAME'].title()
tex_file = filepath(book_path, base_filename, 'tex')

with open(tex_file, 'w') as f:
f.write(template.render(**VARS))

generate_pdf(book_path, base_filename, tex_file)

if __name__ == '__main__':
main()
72 changes: 72 additions & 0 deletions automagica-newspaper.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-

# https://en.wikibooks.org/wiki/LaTeX/Colors

from __future__ import division, print_function, unicode_literals

import site; site.addsitedir("/usr/local/lib/python2.7/site-packages")

import glob
import os
import sys

from pdf import generate_pdf
from template import latex_env
from utils import filepath, latex_single

import site; site.addsitedir("/usr/local/lib/python2.7/site-packages")
from gooey import Gooey, GooeyParser

reload(sys)
sys.setdefaultencoding('utf8')


def add_color(value, colors):
color_name = 'color_{}'.format(len(colors))
colors.append('\definecolor{{{}}}{}'.format(color_name, value))
return color_name


@Gooey(program_name="Automágica newspaper", program_description="Generá un diario listo para imprimir", language='spanish',
image_dir='images', default_size=(810, 570))
def main():
parser = GooeyParser()
parser.add_argument('--BASE_FILENAME', default='diario', metavar="Nombre base de los archivos generados")
parser.add_argument('book_path', help='Carpeta dónde se genera la salida.', metavar='Carpeta', widget='DirChooser'
,default='/Users/juanjo/automagica/trabajos/ies/')
parser.add_argument('--COLUMNS', default='3', metavar="Columnas")
parser.add_argument('--TITLE', default='Diario', metavar="Título")
parser.add_argument('--CITY', default='Santa Fe, Argentina', metavar="City")
parser.add_argument('--PRICE', default='Distrib. Gratuita', help="Precio del diario")
parser.add_argument('--VOLUME', default='1', help="Volumen del diario.")
parser.add_argument('--ISSUE', default='1', help="Número del diario.")
parser.add_argument('--SLOGAN', default='Noticias del instituto y su comunidad', help='Slogan del diario.')
parser.add_argument('--DATE', default='FECHA', help="Fecha del diario.")

args = parser.parse_args()
book_path = args.book_path

VARS = {}
for k, v in args._get_kwargs():
if not VARS.get(k):
VARS[k] = v

text_files = [f for f in glob.glob(os.path.join(book_path, '*.txt')) if not f.endswith('words.txt')]
if text_files:
VARS['CONTENT'] = latex_single(text_files[0], True)

TEMPLATE = os.path.join('newspaper', 'newspaper_template.tex')

template = latex_env.get_template(TEMPLATE)

base_filename = VARS['BASE_FILENAME']
tex_file = filepath(book_path, base_filename, 'tex')

with open(tex_file, 'w') as f:
f.write(template.render(**VARS))

generate_pdf(book_path, base_filename, tex_file)

if __name__ == '__main__':
main()
34 changes: 20 additions & 14 deletions automagica.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@

import site; site.addsitedir("/usr/local/lib/python2.7/site-packages")

import argparse
import imp
import glob
import os
Expand All @@ -18,35 +17,42 @@
from template import latex_env
from utils import filepath, latex_hyphenation, latex_chapter, latex_single, show_file

import site; site.addsitedir("/usr/local/lib/python2.7/site-packages")
from gooey import Gooey, GooeyParser

reload(sys)
sys.setdefaultencoding('utf8')

DEFAULTS = dict(
INDEX_TITLE='Índice',
HYPHENATION='',
CONTENT='',
)


@Gooey(program_name="Automágica", program_description="Generá libros listos para imprimir en base a tus originales",
language='spanish', image_dir='images', default_size=(810, 570))
def main():
parser = argparse.ArgumentParser()
parser.add_argument('--BASE_FILENAME', default='default')
parser.add_argument('book_path', help='Carpeta con archivos para un libro.', metavar='carpeta')
parser.add_argument('--no-split', help='No separar párrafos.', action='store_true')
parser = GooeyParser()
parser.add_argument('--BASE_FILENAME', default='libro', metavar="Nombre base de los archivos generados")
parser.add_argument('book_path', help='Carpeta con archivos para un libro y dónde se genera la salida.',
metavar='Carpeta', widget='DirChooser')
parser.add_argument('--no-split', help='No separar párrafos.', action='store_true',)
parser.add_argument('--pdf', help='Genera la versión pdf del libro.', action='store_true')
parser.add_argument('--booklet', help='Genera la versión booklet del pdf.', action='store_true')
parser.add_argument('--epub', help='Genera la versión epub del libro.', action='store_true')
parser.add_argument('--only-tex', help='Solo genera el archivo latex.', action='store_true')
parser.add_argument('--sections', help='Usar secciones en lugar de capítulos como elemento principal.', action='store_true')
parser.add_argument('--new-page-before-sections', help='Forzar página nueva en las secciones principales.', action='store_true')
parser.add_argument('--TITLE', default='TITLE')
parser.add_argument('--SUBTITLE', default='')
parser.add_argument('--AUTHOR', default='AUTHOR')
parser.add_argument('--FONT_SIZE', default=11)
parser.add_argument('--PAGE_SIZE', default='a5paper')
parser.add_argument('--YEAR', default=datetime.now().year)
parser.add_argument('--URL', default='')
parser.add_argument('--exclude-index', action='store_true')
parser.add_argument('--TITLE', default='TÍTULO', metavar="Título")
parser.add_argument('--SUBTITLE', default='', metavar="Subtítulo")
parser.add_argument('--AUTHOR', default='AUTOR', metavar="Autor")
parser.add_argument('--FONT_SIZE', default=11, metavar="Tamaño de la fuente")
parser.add_argument('--SPACING', default=1.1, metavar="Interlineado")
parser.add_argument('--PAGE_SIZE', default='a5paper', metavar="Tamaño de la página")
parser.add_argument('--YEAR', default=datetime.now().year, metavar="Año")
parser.add_argument('--URL', default='', metavar="Página web")
parser.add_argument('--exclude-index', action='store_true', help="No incluir índice.")
parser.add_argument('--INDEX_TITLE', default='Índice', metavar="Título del índice")
parser.add_argument('--no-open', help='No intenta abrir el booklet para verlo.', action='store_true')
args = parser.parse_args()
book_path = args.book_path
Expand Down
Loading