[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:14107] Bug#JP/844: Unable to printout on XEROX Laser Press 4300 from tgif



Package: tgif-ja
Version: 3.0.p13-j1-5

tgif-ja で作成した PS ファイルを富士ゼロックス社の Laser Press 4300 プ
リンタ (PostScript ROM付き) で印刷しようとすると、

unknownresurce (endrearrangedfont)

といって、PostScript エラーで終了してしまい、印刷できません。

EPS ファイルにして、LaTeX に読み込んでも同様です。使用しているシステム
は hamm です。

WWWで検索して見つけた以下のパッチ (eucfont をやめて JIS で出力するよう
にするらしい) を当ててtgifをつくり直してみたら、とりあえず印刷はできる
ようになりました。tgif-3.0J0.12-p18-LBP730PS.patch というパッチもあり
ましたが (これは eucfont を defineKanjiFont というものに書き換えるらし
い)、こちらは試していません。

現状のままですと、tgif の出力が、プリンタによっては印刷できないことが
あるようです。Debian のパッケージについても、なんらかのパッチを当てる
ように思われます (下のパッチがいいのかどうかはわかりませんが)。以上御
検討いただければ幸いです。

                                              井本 貴之 (IMOTO Takashi)
     NTT長距離国際会社移行本部 ソリューション事業部 システムサービス部
                                                  Voice: (03)3270-9534
                                                Dial-in: (03)5463-2522
                                          Facsimile: (03)3270-9539 (G3)
                                           Internet: t.imoto@xxxxxxxxx

From: e-nakagw@xxxxxxxxxxxxxxxxxxxxx
Newsgroups: fj.questions.unix,fj.comp.dev.printer,fj.sources
Subject: tgif-3.0J0.12-p13-PSJIS.diff(Re: [Q] PostScript PRINTER の)
Date: 13 Oct 1997 08:37:39 GMT
Organization: Uninet is an independent site
Lines: 320
Message-ID: <61smkj$21n@xxxxxxxxxxxxxxxxxxxxxxxxxxx>
References: <1997Oct1.075253.2916@xxxxxxxxxxxxxxxx>
	<60vdk7$n5n$1@xxxxxxxxxxxxxx>
	<61buti$hu4@xxxxxxxxxxxxxxxxxxxxxxxxxxx>
	<61rt22$724@xxxxxxxxxxxxxxxxxxxxxxxxxxx>
NNTP-Posting-Host: ichiro.krhm.jvc-victor.co.jp
X-Newsreader: mnews [version 1.18PL3] 1994-08/01(Mon)

中川@JVCです。

<61rt22$724@xxxxxxxxxxxxxxxxxxxxxxxxxxx>の記事において
e-nakagw@xxxxxxxxxxxxxxxxxxxxxは書きました。

>> 他にもこのパッチを探している方もおられた様なので、現在、菅野さんに
>> fj.sourcesに投稿しても良いか確認を取っているところです。

作者の菅野さんの承認を得ましたので、以下のpatchを投稿いたします。
本件に関して菅野さんおよび有益な情報を頂いた方々にはこの場をかりて深く
感謝申し上げます。

中川  e-nakagw@xxxxxxxxxxxxxxxxxxxxx

−−−−−ここからがパッチです。−−−−−−−−−−−−
  このパッチは、tgif-3.0J0.12-p13-patch.gz を当てた tgif 3.0-p13 の
PostScript 出力の日本語コードを EUC から JIS に変更するものです。
  ps.c の psKanjiFontMacro を JIS コードでエスケープマッピング出力に
対応するように変更し、不要になった copyfont を削除、test.c の PostScript
出力部分を JIS に対応するように変更しています。

  このパッチを当てることにより、tgif の出力ファイルが EUCコードの取扱いに
問題がある一部のプリンターや Adobe Acrobat 3.0j で取扱えるようになります。
  また、EUC コードを取扱えるプリンターでも、本パッチによる悪影響は、
原理上ないはずです。

  なお、日本語出力関係のリソースのデフォルト値は、JIS 化したことにより
EUC から JIS に変更しています。

   1997 Aug. 9th              菅野 伸一 / kanno@xxxxxxxxxxxxxxxxxxxxx

diff -cN tgif-3.0-p13/auxtext.c tgif-3.0-p13-PSJIS/auxtext.c
*** tgif-3.0-p13/auxtext.c	Sat Aug  9 00:45:15 1997
--- tgif-3.0-p13-PSJIS/auxtext.c	Sat Aug  9 00:43:57 1997
***************
*** 1405,1411 ****
     else {
        if(!IsDefinedEucFont(font_str)) {
            fprintf(FP, "%s %s /%s ", font_str, latin_font_str, kanji_font_str);
!           fprintf(FP, "eucfont\n");
   
           DefineEucFont(font_str);
        }
--- 1405,1411 ----
     else {
        if(!IsDefinedEucFont(font_str)) {
            fprintf(FP, "%s %s /%s ", font_str, latin_font_str, kanji_font_str);
!           fprintf(FP, "jisfont\n");
   
           DefineEucFont(font_str);
        }
diff -cN tgif-3.0-p13/font.c tgif-3.0-p13-PSJIS/font.c
*** tgif-3.0-p13/font.c	Sat Aug  9 00:45:12 1997
--- tgif-3.0-p13-PSJIS/font.c	Sat Aug  9 00:43:57 1997
***************
*** 259,265 ****
     { NULL,
  	"fixed-medium-r-normal",
  	"jisx0208.1983-*",
! 	"Ryumin-Light-EUC-H",
  	"Ryumin",
  	FALSE,
  	FALSE,
--- 259,265 ----
     { NULL,
  	"fixed-medium-r-normal",
  	"jisx0208.1983-*",
! 	"Ryumin-Light-H",
  	"Ryumin",
  	FALSE,
  	FALSE,
***************
*** 270,276 ****
     { NULL,
  	"fixed-medium-r-normal",
  	"jisx0208.1983-*",
! 	"GothicBBB-Medium-EUC-H",
  	"Gothic",
  	FALSE,
  	TRUE,
--- 270,276 ----
     { NULL,
  	"fixed-medium-r-normal",
  	"jisx0208.1983-*",
! 	"GothicBBB-Medium-H",
  	"Gothic",
  	FALSE,
  	TRUE,
***************
*** 281,287 ****
     { NULL,
  	"fixed-medium-r-normal",
  	"jisx0208.1983-*",
! 	"Ryumin-Light-EUC-V",
  	"Ryumin-V",
  	TRUE,
  	FALSE,
--- 281,287 ----
     { NULL,
  	"fixed-medium-r-normal",
  	"jisx0208.1983-*",
! 	"Ryumin-Light-V",
  	"Ryumin-V",
  	TRUE,
  	FALSE,
***************
*** 292,298 ****
     { NULL,
  	"fixed-medium-r-normal",
  	"jisx0208.1983-*",
! 	"GothicBBB-Medium-EUC-V",
  	"Gothic-V",
  	TRUE,
  	TRUE,
--- 292,298 ----
     { NULL,
  	"fixed-medium-r-normal",
  	"jisx0208.1983-*",
! 	"GothicBBB-Medium-V",
  	"Gothic-V",
  	TRUE,
  	TRUE,
diff -cN tgif-3.0-p13/ps.c tgif-3.0-p13-PSJIS/ps.c
*** tgif-3.0-p13/ps.c	Sat Aug  9 00:45:10 1997
--- tgif-3.0-p13-PSJIS/ps.c	Sat Aug  9 00:43:57 1997
***************
*** 250,303 ****
  
  static char *psKanjiFontMacro[] =
  {
!   "%%Title: eucfont.ps",
!   "% old eucfont.ps(OCFeucfont) and new eucfont.ps(CIDeucfont) were combined.",
!   "%  1996-09, kawamata@xxxxxxxxx",
!   "% Sample Usage:",
!   "%   Operands are only font names permitted. Don't put fontdict itself.",
!   "% /Courier-Ryumin /Courier /Ryumin-Light-EUC-V eucfont",
!   "",
!   "%%Title: CIDeucfont.ps",
!   "%%Creator: yohtaki@xxxxxxxxxxxxxxxxx",
!   "%%CreationDate: 1996-9-29",
    "%%EndComments",
-   "%",
-   "% <newfont> <asciifont> <kanjifont> CIDeucfont",
-   "/CIDeucfont {",
-   "dup findfont /WMode get 1 eq 4 1 roll % push direction info.",
-   "12 dict begin",
-   "  /CIDInit /ProcSet findresource begin",
-   "  exch [ 3 1 roll ] beginrearrangedfont",
-   "      3 -1 roll {   % pop direction info",
-   "         /WMode 1 def	% vertical font",
-   "         0 beginusematrix [ 0 1 -1 0 0 0.3 ] endusematrix",
-   "      } if",
-   "      1 usefont",
-   "      1 beginbfrange",
-   "         <00> <7F> <00>",
-   "       endbfrange",
-   "     endrearrangedfont",
-   "  end",
-   "end",
-   "} def",
    "",
!   "%%Title: OCFeucfont.ps",
!   "%%Creator: shikida@xxxxxxxxxxxxxxx, ueno@xxxxxxxxxxxxxxx",
!   "%%CreationDate: 1991-2-27",
!   "%%EndComments",
!   "% <font> OCFcopyfont <font>",
!   "/OCFcopyfont {",
!   "    dup maxlength 1 add dict begin",
!   "    {",
!   "	1 index /FID ne 2 index /UniqueID ne and",
!   "	{def} {pop pop} ifelse",
!   "    } forall",
!   "    currentdict",
!   "    end",
!   "} bind def",
!   "% <newfont> <asciifont> <kanjifont> OCFeucfont",
!   "/OCFeucfont {",
!   "      12 dict begin",
    "	dup type /nametype eq { findfont } if",
    "	dup /WMode known {",
    "	    dup /WMode get /WMode exch def",
--- 250,265 ----
  
  static char *psKanjiFontMacro[] =
  {
!   "%%Title: jisfont.ps",
!   "%%Creator: kanno@xxxxxxxxxxxxxxxxxxxxx",
!   "%%CreationDate: 1997-7-20",
    "%%EndComments",
    "",
!   "% based on eucfont.ps (1991-2-27) by shikida@xxxxxxxxxxxxxxx, ueno@xxxxxxxxxxxxxxx",
!   "",
!   "% <newfont> <asciifont> <kanjifont> jisfont",
!   "/jisfont {",
!   "    12 dict begin",
    "	dup type /nametype eq { findfont } if",
    "	dup /WMode known {",
    "	    dup /WMode get /WMode exch def",
***************
*** 305,322 ****
    "		[0.0 1.0 -1.0 0.0 0.0 0.30] makefont",
    "	    } if",
    "	} if",
-   "	OCFcopyfont dup begin",
-   "	    /Encoding Encoding",
-   "	    FMapType dup 2 eq {",
-   "		pop 128 128",
-   "	    } { 5 eq {",
-   "		256 256",
-   "	    } {",
-   "		/compositefont errordict /invalidfont get exec",
-   "	    } ifelse",
-   "	    } ifelse",
-   "	    getinterval def",
-   "	end",
    "	/kanjifont exch definefont",
    "	exch",
    "",
--- 267,272 ----
***************
*** 325,331 ****
    "",
    "	/FDepVector [ 4 2 roll ] def",
    "	/FontType 0 def",
!   "	/FMapType 4 def",
    "	/FontMatrix matrix def",
    "	/Encoding [ 0 1 ] def",
    "	/FontBBox {0 0 0 0} def",
--- 275,281 ----
    "",
    "	/FDepVector [ 4 2 roll ] def",
    "	/FontType 0 def",
!   "	/FMapType 3 def",
    "	/FontMatrix matrix def",
    "	/Encoding [ 0 1 ] def",
    "	/FontBBox {0 0 0 0} def",
***************
*** 335,347 ****
    "    definefont pop",
    "} def",
    "",
-   "% <newfont> <asciifont> <kanjifont> eucfont",
-   "/eucfont {",
-   "	dup findfont",
-   "	/FMapType get 9 eq",
-   "		{ CIDeucfont}",
-   "		{ OCFeucfont} ifelse",
-   "} def",
    NULL
  };
  
--- 285,290 ----
diff -cN tgif-3.0-p13/text.c tgif-3.0-p13-PSJIS/text.c
*** tgif-3.0-p13/text.c	Sat Aug  9 00:45:08 1997
--- tgif-3.0-p13-PSJIS/text.c	Sat Aug  9 00:43:58 1997
***************
*** 3402,3407 ****
--- 3402,3408 ----
     register char	* Str;
  {
     register char	* c_ptr;
+    register int		inkanji = 0;
  
     for ( ; *Str != '\0'; Str++)
     {
***************
*** 3409,3430 ****
        {
           case '(':
           case ')':
!          case '\\': fprintf (FP, "\\"); break;
        }
        if ((*Str) & 0x80)
        {
           if (FontIndex != FONT_SYM && KanjiFontIndex == KANJI_FONT_NONE && (c_ptr = CharCodeTranslate (Str)) != NULL)
           {
              if (*c_ptr == '\\')
                 fprintf (FP, "%s", c_ptr);
              else if (*c_ptr == '8')
                 fprintf (FP, "\\%c%c%c", c_ptr[2], c_ptr[3], c_ptr[4]);
           }
!          else
!             fprintf (FP, "\\%o", (*Str)&0xff);
        }
!       else
           fprintf (FP, "%c", *Str);
     }
  }
  
--- 3410,3438 ----
        {
           case '(':
           case ')':
!          case '\\':
! 		if (inkanji) { fprintf(FP, "\\377\\000"); inkanji = 0; }
! 		fprintf (FP, "\\"); break;
        }
        if ((*Str) & 0x80)
        {
           if (FontIndex != FONT_SYM && KanjiFontIndex == KANJI_FONT_NONE && (c_ptr = CharCodeTranslate (Str)) != NULL)
           {
+             if (inkanji) { fprintf(FP, "\\377\\000"); inkanji = 0; }
              if (*c_ptr == '\\')
                 fprintf (FP, "%s", c_ptr);
              else if (*c_ptr == '8')
                 fprintf (FP, "\\%c%c%c", c_ptr[2], c_ptr[3], c_ptr[4]);
           }
!          else {
!             if (!inkanji) { fprintf(FP, "\\377\\001"); inkanji = 1; }
!             fprintf (FP, "\\%o", (*Str)&0x7f);
!          }
        }
!       else {
!          if (inkanji) { fprintf(FP, "\\377\\000"); inkanji = 0; }
           fprintf (FP, "%c", *Str);
+       }
     }
  }