[PYTHON] Generieren Sie benutzerdefinierte Größen für ArtRage4

Im Ausgangszustand hat ArtRage beim Erstellen eines neuen keine Größen wie A4 und B5. Da es jedoch möglich ist, es als benutzerdefinierte Größe hinzuzufügen, ist es an sich kein großes Problem, aber es war ein wenig mühsam, es einzeln hinzuzufügen. Deshalb habe ich ein Skript geschrieben, um es automatisch als Testversion zu generieren. (Der Vorgang wurde mit ArtRage4 (4.0.4) bestätigt.)

Die Verwendung ist wie folgt.

$ python artrage_papersize.py A4 A5 B5 --dpi 300

Im obigen Beispiel

Wird im aktuellen Ordner generiert.

Speichern Sie die generierten Dateien nach Bedarf in den benutzerdefinierten Größen von ArtRage.

artrage_paparsize.py


#!/usr/bin/env  python
# -*- coding: utf-8 -*-
#
# ------------------------------------------------------------------ import(s)
import  sys
import  struct
import  argparse



# ------------------------------------------------------------------- param(s)
ARTRAGE_HEAD  = u"ARSizePresetFileVersion-1\r\n"
PAPER_SIZE    = {
  "A" : { "X" :  841, "Y" : 1189 },
  "B" : { "X" : 1030, "Y" : 1456 },
}
MM_INCH       = 0.03937



# ---------------------------------------------------------------- function(s)

# ============================================================================
##
#
def calc_size( fX, fY ):

  return( fY / 2, fX )



# ============================================================================
##
#
def export_file( strFilename, fX, fY, nDPI ):

  with open( strFilename, "wb" ) as hFile:
    hFile.write( ARTRAGE_HEAD.encode( "utf-16-le" ) )
    hFile.write( struct.pack( "BBBBIIf", 0x01, 0x34, 0x00, 0xFF, 4, 0,   fX ) )
    hFile.write( struct.pack( "BBBBIIf", 0x02, 0x34, 0x00, 0xFF, 4, 0,   fY ) )
    hFile.write( struct.pack( "BBBBIIf", 0x01, 0x31, 0x00, 0xFF, 4, 0, nDPI ) )
    hFile.write( struct.pack( "BBBBIII", 0x00, 0x34, 0x00, 0xFF, 4, 0,    0 ) )
    hFile.close()



# ============================================================================
##
#
def main():

  oCParser  = argparse.ArgumentParser( description = "ArtRage Paper Generator" )
  oCParser.add_argument(
    "paper",
    help  = "Set paper (ex: A4, B5)",
    nargs = "+"
  )
  oCParser.add_argument(
    "-d", "--dpi",
    help    = "Set dpi",
    default = 300
  )

  oCParams  = oCParser.parse_args( sys.argv[ 1: ] )


  for strPaper in oCParams.paper:

    if( len( strPaper ) != 2 ):
      continue
    if( strPaper[ 0 ].upper() not in ( "A", "B" ) ):
      continue

    try:
      strP  = strPaper[ 0 ].upper()
      nSize = int( strPaper[ 1 ] )
      nDPI  = oCParams.dpi
    except:
      continue


    fX  = PAPER_SIZE[ strP ][ "X" ] * nDPI * MM_INCH
    fY  = PAPER_SIZE[ strP ][ "Y" ] * nDPI * MM_INCH

    for nSplitCount in range( nSize ):
      fX, fY  = calc_size( fX, fY )

    strFilenameP = "%s%d Port.spr"  % ( strP, nSize, )
    strFilenameL = "%s%d Land.spr" % ( strP, nSize, )
    export_file( strFilenameP, fX, fY, nDPI )
    export_file( strFilenameL, fY, fX, nDPI )



if( __name__ == "__main__" ):
  main()



# ---------------------------------------------------------------------- [EOF]

Recommended Posts

Generieren Sie benutzerdefinierte Größen für ArtRage4
EDT für ECHONET-Nachricht automatisch generieren