X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=lib%2Fscripts%2Flyxpreview2bitmap.py;h=eee000deeae33840f085d6554a0a82305b811850;hb=dcf06fdb22bf39637aa7e11e59ca281d921fcbc7;hp=68d0a4d37bdaff37f1a6b47deb512c78f3eca09d;hpb=11f2a59ce90b406537ff3379276d5e0bb1bf6c37;p=lyx.git diff --git a/lib/scripts/lyxpreview2bitmap.py b/lib/scripts/lyxpreview2bitmap.py index 68d0a4d37b..eee000deea 100755 --- a/lib/scripts/lyxpreview2bitmap.py +++ b/lib/scripts/lyxpreview2bitmap.py @@ -77,16 +77,19 @@ from __future__ import print_function -import getopt, glob, os, re, shutil, sys +import getopt, glob, os, re, shutil, sys, tempfile + +import lyxpreview_tools from legacy_lyxpreview2ppm import extract_resolution, legacy_conversion_step1 from lyxpreview_tools import bibtex_commands, check_latex_log, copyfileobj, \ error, filter_pages, find_exe, find_exe_or_terminate, \ join_metrics_and_rename, latex_commands, latex_file_re, make_texcolor, \ - mkstemp, pdflatex_commands, progress, run_command, run_latex, run_tex, \ + pdflatex_commands, progress, run_command, run_latex, run_tex, \ warning, write_metrics_info +PY2 = sys.version_info[0] == 2 def usage(prog_name): msg = """ @@ -161,9 +164,12 @@ def extract_metrics_info(dvipng_stdout): def fix_latex_file(latex_file, pdf_output): - def_re = re.compile(rb"(\\newcommandx|\\global\\long\\def)(\\[a-zA-Z]+)") + # python 2 does not allow to declare a string as raw byte so we double + # the backslashes and remove the r preffix + def_re = re.compile(b"(\\\\newcommandx|\\\\global\\\\long\\\\def)" + b"(\\\\[a-zA-Z]+)") - tmp = mkstemp() + tmp = tempfile.TemporaryFile() changed = False macros = [] @@ -279,7 +285,7 @@ def find_ps_pages(dvi_file): # Use page ranges, as a list of pages could exceed command line # maximum length (especially under Win32) - for index in xrange(1, page_index + 1): + for index in range(1, page_index + 1): if (not index in ps_or_pdf_pages) and skip: # We were skipping pages but current page shouldn't be skipped. # Add this page to -pp, it could stay alone or become the @@ -339,7 +345,6 @@ def main(argv): elif opt == "--bg": bg_color = val elif opt in ("-d", "--debug"): - import lyxpreview_tools lyxpreview_tools.debug = True elif opt == "--dpi": try: @@ -357,7 +362,6 @@ def main(argv): elif opt in ("--png", "--ppm"): output_format = opt[2:] elif opt in ("-v", "--verbose"): - import lyxpreview_tools lyxpreview_tools.verbose = True # Determine input file @@ -368,23 +372,41 @@ def main(argv): input_path = args[0] dir, latex_file = os.path.split(input_path) + # Check for the input file + if not os.path.exists(input_path): + error('File "%s" not found.' % input_path) + if len(dir) != 0: + os.chdir(dir) + + if lyxpreview_tools.verbose: + f_out = open('verbose.txt', 'a') + sys.stdout = f_out + sys.stderr = f_out + # Echo the settings + progress("Running Python %s" % str(sys.version_info[:3])) progress("Starting %s..." % script_name) + if os.name == "nt": + progress("Use win32_modules: %d" % lyxpreview_tools.use_win32_modules) progress("Output format: %s" % output_format) progress("Foreground color: %s" % fg_color) progress("Background color: %s" % bg_color) progress("Resolution (dpi): %s" % dpi) progress("File to process: %s" % input_path) - # Check for the input file - if not os.path.exists(input_path): - error('File "%s" not found.' % input_path) - if len(dir) != 0: - os.chdir(dir) + # For python > 2 convert strings to bytes + if not PY2: + fg_color = bytes(fg_color, 'ascii') + bg_color = bytes(bg_color, 'ascii') fg_color_dvipng = make_texcolor(fg_color, False) bg_color_dvipng = make_texcolor(bg_color, False) + # For python > 2 convert bytes to string + if not PY2: + fg_color_dvipng = fg_color_dvipng.decode('ascii') + bg_color_dvipng = bg_color_dvipng.decode('ascii') + # External programs used by the script. latex = find_exe_or_terminate(latex or latex_commands) bibtex = find_exe(bibtex or bibtex_commands)