#! /usr/bin/env python
# -*- python -*-

####################################################################################################
# 
# PyDvi - A Python Library to Process DVI Stream
# Copyright (C) 2014 Fabrice Salvaire
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# 
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
# 
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
# 
####################################################################################################

####################################################################################################

import argparse

####################################################################################################

import PyDviPng.Logging.Logging as Logging
logger = Logging.setup_logging()

####################################################################################################

from PyDviPng import DviPng

####################################################################################################
#
# Options
#

parser = argparse.ArgumentParser(description='DVI to PNG converter.')

parser.add_argument('dvi_file', metavar='FILE.dvi',
                    help='DVI File')

parser.add_argument('png_file', metavar='FILE.png',
                    help='PNG File')

parser.add_argument('--page',
                    type=int, default=1,
                    help='page index from 1')

parser.add_argument('--dpi',
                    type=int, default=300,
                    help='resolution in dpi')

parser.add_argument('--tight',
                    action='store_true', default=False,
                    help='crop the page to the bounding box')

args = parser.parse_args()

####################################################################################################

dvi_png = DviPng()
dvi_png.process_dvi_stream(args.dvi_file)
dvi_png.run_page(args.png_file, args.page -1, args.dpi, args.tight)

####################################################################################################
#
# End
#
####################################################################################################
