Dans l'état initial, ArtRage n'a pas de tailles telles que A4 et B5 lors de la création d'un nouveau. Cependant, comme il est possible de l'ajouter en tant que taille personnalisée, ce n'est pas un gros problème en soi, mais c'était un peu gênant de l'ajouter un par un, j'ai donc écrit un script pour le générer automatiquement en tant que test. (L'opération a été confirmée avec ArtRage4 (4.0.4).)
L'utilisation est comme ça.
$ python artrage_papersize.py A4 A5 B5 --dpi 300
Dans l'exemple ci-dessus
Sera généré dans le dossier actuel.
Enregistrez les fichiers générés dans les tailles personnalisées d'ArtRage si nécessaire.
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]