summaryrefslogtreecommitdiffstats
path: root/magic/Magdir/printer
blob: b45a2025ec8a6eddd9b77b3d16448c2d26e7a7cc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
#------------------------------------------------------------------------------
# $File: printer,v 1.34 2023/06/16 19:27:12 christos Exp $
# printer:  file(1) magic for printer-formatted files
#

# PostScript, updated by Daniel Quinlan (quinlan@yggdrasil.com)
0	string		%!		PostScript document text
!:mime	application/postscript
!:apple	ASPSTEXT
>2	string		PS-Adobe-	conforming
>>11	string		>\0		DSC level %.3s
>>>15	string		EPS		\b, type %s
>>>15	string		Query		\b, type %s
>>>15	string		ExitServer	\b, type %s
>>>15   search/1000		%%LanguageLevel:\040
>>>>&0	string		>\0		\b, Level %s
# Some PCs have the annoying habit of adding a ^D as a document separator
0	string		\004%!		PostScript document text
!:mime	application/postscript
!:apple	ASPSTEXT
>3	string		PS-Adobe-	conforming
>>12	string		>\0		DSC level %.3s
>>>16	string		EPS		\b, type %s
>>>16	string		Query		\b, type %s
>>>16	string		ExitServer	\b, type %s
>>>16   search/1000		%%LanguageLevel:\040
>>>>&0	string		>\0		\b, Level %s
0	string		\033%-12345X%!PS	PostScript document

# DOS EPS Binary File Header
# From: Ed Sznyter <ews@Black.Market.NET>
# Update:	Joerg Jenderek
# URL:		http://fileformats.archiveteam.org/wiki/Encapsulated_PostScript
# Reference:	http://mark0.net/download/triddefs_xml.7z/defs/eps-adobe.trid.xml
# Note:		called "Encapsulated PostScript binary" by TrID and 
#		verified partly by ImageMagick `identify -verbose *` as EPT (Encapsulated PostScript with TIFF preview)
0       belong          0xC5D0D3C6
# skip DROID fmt-122-signature-id-174.eps fmt-123-signature-id-178.eps fmt-124-signature-id-180.eps
# by looking for content after header
# GRR: in version 5.44 unequal and not endian variant not working!
>32	ulelong		>0		DOS EPS Binary File
!:mime	image/x-eps
# TODO: check that "long" is false on big endian machines
# Postscript often (850/857) comes after header; so values like: 30 32 or 2788 10644 43350 71828  
>>4      long            >0              at byte %d
# 1 space char after length value to get phrase like "length 263893 PostScript document text"
>>>8     long            >0              length %d 
# PostScript document text handled by ./printer
>>>>(4.l)	indirect		x
# Reference:	http://mark0.net/download/triddefs_xml.7z/defs/e/eps-wmf.trid.xml
# Note:		called "Encapsulated PostScript binary (with WMF preview)" by TrID
#		verified partly by XnView `nconvert -info *.EP?` as TIFF epsp
>>>>12   long            >0               at byte %d
!:ext	eps
# GRR: in file version 5.44 calling indirect of ./msdos produce phrase like "length 452\012- Windows metafile"
>>>>16  long            >0              length %d
# Windows metafile data handled by ./msdos
>>>>>(12.l)	indirect		x
# Reference:	http://mark0.net/download/triddefs_xml.7z/defs/e/eps-tiff.trid.xml
# Note:		called "Encapsulated PostScript binary (with TIFF preview)" by TrID
>>>>20   long            >0              at byte %d
# For the variant with the TIFF preview image sometimes the file extension ept is used
!:ext	eps/ept
# GRR: in file version 5.44 calling indirect of ./images produce phrase like "length 43320\012- TIFF image data,"
>>>>>24  long            >0              length %d
# TIFF image data handled by ./images
>>>>>>(20.l)	indirect		x

# Summary: Adobe's PostScript Printer Description File
# Extension: .ppd
# Reference: https://partners.adobe.com/public/developer/en/ps/5003.PPD_Spec_v4.3.pdf, Section 3.8
# Submitted by: Yves Arrouye <arrouye@marin.fdn.fr>
#
0	string		*PPD-Adobe:\x20	PPD file
>&0	string		x		\b, version %s
!:ext	ppd
!:mime	application/vnd.cups-ppd

# HP Printer Job Language
0	string		\033%-12345X@PJL	HP Printer Job Language data
# HP Printer Job Language
# The header found on Win95 HP plot files is the "Silliest Thing possible"
# (TM)
# Every driver puts the language at some random position, with random case
# (LANGUAGE and Language)
# For example the LaserJet 5L driver puts the "PJL ENTER LANGUAGE" in line 10
# From: Uwe Bonnes <bon@elektron.ikp.physik.th-darmstadt.de>
#
0	string		\033%-12345X@PJL	HP Printer Job Language data
>&0	string		>\0			%s
>>&0	string		>\0			%s
>>>&0	string		>\0			%s
>>>>&0	string		>\0			%s
#>15	string		\ ENTER\ LANGUAGE\ =
#>31	string		PostScript		PostScript

# From: Stefan Thurner <thurners@nicsys.de>
0	string		\033%-12345X@PJL
>&0	search/10000	%!			PJL encapsulated PostScript document text

# Rick Richardson <rickrich@gmail.com>

# For Fuji-Xerox Printers - HBPL stands for Host Based Printer Language
# For Oki Data Printers - HIPERC
# For Konica Minolta Printers - LAVAFLOW
# For Samsung Printers - QPDL
# For HP Printers - ZJS stands for Zenographics ZJStream
0	string		\033%-12345X@PJL	HP Printer Job Language data
>0	search/10000	@PJL\ ENTER\ LANGUAGE=HBPL	- HBPL
>0	search/10000	@PJL\ ENTER\ LANGUAGE=HIPERC	- Oki Data HIPERC
>0	search/10000	@PJL\ ENTER\ LANGUAGE=LAVAFLOW	- Konica Minolta LAVAFLOW
>0	search/10000	@PJL\ ENTER\ LANGUAGE=QPDL	- Samsung QPDL
>0	search/10000	@PJL\ ENTER\ LANGUAGE\ =\ QPDL	- Samsung QPDL
>0	search/10000	@PJL\ ENTER\ LANGUAGE=ZJS	- HP ZJS
# Summary:	Hewlett-Packard printer firmware update
# From:		Joerg Jenderek
# URL:		https://support.hp.com/us-en/drivers/selfservice/hp-envy-6000e-all-in-one-printer-series/2100187505/model/2100187513
# Note:		firmware update tested with ENVY 6000 All-in-One Printer
0	string		@PJL\ ENTER\ LANGUAGE=FWUPDATE2	HP Printer firmware update
#!:mime	application/octet-stream
#!:mime	application/x-hp-firmware
# https://ftp.hp.com/pub/softlib/software13/printers/en6000/2214/EN6000_2214B.exe
# vasari_base_dist_pp1_001.2214B_nonassert_appsigned_lbi_rootfs_secure_signed.ful2
!:ext	ful2

# HP Printer Control Language, Daniel Quinlan (quinlan@yggdrasil.com)
0	string		\033E\033	HP PCL printer data
>3	string		\&l0A		- default page size
>3	string		\&l1A		- US executive page size
>3	string		\&l2A		- US letter page size
>3	string		\&l3A		- US legal page size
>3	string		\&l26A		- A4 page size
>3	string		\&l80A		- Monarch envelope size
>3	string		\&l81A		- No. 10 envelope size
>3	string		\&l90A		- Intl. DL envelope size
>3	string		\&l91A		- Intl. C5 envelope size
>3	string		\&l100A		- Intl. B5 envelope size
>3	string		\&l-81A		- No. 10 envelope size (landscape)
>3	string		\&l-90A		- Intl. DL envelope size (landscape)

# IMAGEN printer-ready files:
0	string	@document(		Imagen printer
# this only works if "language xxx" is first item in Imagen header.
>10	string	language\ impress	(imPRESS data)
>10	string	language\ daisy		(daisywheel text)
>10	string	language\ diablo	(daisywheel text)
>10	string	language\ printer	(line printer emulation)
>10	string	language\ tektronix	(Tektronix 4014 emulation)
# Add any other languages that your Imagen uses - remember
# to keep the word `text' if the file is human-readable.
# [GRR 950115:  missing "postscript" or "ultrascript" (whatever it was called)]
#
# Now magic for IMAGEN font files...
0	string		Rast		RST-format raster font data
>45	string		>0		face %s
# From Jukka Ukkonen
0	string		\033[K\002\0\0\017\033(a\001\0\001\033(g	Canon Bubble Jet BJC formatted data

# From <mike@flyn.org>
# These are the /etc/magic entries to decode data sent to an Epson printer.
0       string          \x1B\x40\x1B\x28\x52\x08\x00\x00REMOTE1P        Epson Stylus Color 460 data


#------------------------------------------------------------------------------
# zenographics:  file(1) magic for Zenographics ZjStream printer data
# Rick Richardson <rickrich@gmail.com>
0	string		JZJZ
>0x12	string		ZZ		Zenographics ZjStream printer data (big-endian)
0	string		ZJZJ
>0x12	string		ZZ		Zenographics ZjStream printer data (little-endian)


#------------------------------------------------------------------------------
# Oak Technologies printer stream
# Rick Richardson <rickrich@gmail.com>
0       string          OAK
>0x07	byte		0
>0x0b	byte		0	Oak Technologies printer stream

# This would otherwise be recognized as PostScript - nick@debian.org
0	string		%!VMF 		SunClock's Vector Map Format data

#------------------------------------------------------------------------------
# HP LaserJet 1000 series downloadable firmware file
0	string	\xbe\xefABCDEFGH	HP LaserJet 1000 series downloadable firmware

# From: Paolo <oopla@users.sf.net>
# Epson ESC/Page, ESC/PageColor
0	string	\x1b\x01@EJL	Epson ESC/Page language printer data

# Summary:	Hewlett-Packard Graphics Language
# From:		Joerg Jenderek
# URL:		http://fileformats.archiveteam.org/wiki/HP-GL
#		https://en.wikipedia.org/wiki/HPGL
# Reference:	http://mark0.net/download/triddefs_xml.7z/defs/h/hpg.trid.xml
# Note:		called "Hewlett-Packard Graphics Language" by TrID and
#		"Hewlett Packard Graphics Language" by DROID via PUID x-fmt/293 and
#		HPGL by XnView command `nconvert -info *`
# initialize, start a plotting job 
0	string	IN;
>0		use		hpgl
# fill.plt
0	string	INPS
>0		use		hpgl
# http://ftp.funet.fi/index/graphics/packages/hpgl2ps/hpgl2ps.tar.Z/hpgl2ps/test1.hpgl 
0	string	DF;
>0		use		hpgl
# http://ftp.funet.fi/index/graphics/packages/hpgl2ps/hpgl2ps.tar.Z/hpgl2ps/test3.hpgl 
# Select Pen n; If no pen number or 0, the controller performs an end of file command; n in range between -32767 and 32768 like: 6
0	string	SP
# skip text Linux-syscall-note inside qemu sources starting with SPDX-Exception-Identifier: Linux-syscall-note
# by checking for valid Pen number
>2	regex	\^([0-9]{1,5})
#>2	regex	\^([0-9]{1,5})	PEN_NUMBER=%s
>>0		use		hpgl
# charsize.hp pages.hp	set the scaling points (P1 and P2) to their default positions
0	string	IP0
>0		use		hpgl
# ci.hp
0	string	CO\040
>0		use		hpgl
# iw.hp 286x192.5_lh.hpg 286x192.5_lq.hpg
0	string	PS\040
>0		use		hpgl
# thick.hp
0	string	PS9
>0		use		hpgl
# ul.hp
0	string	PS4
>0		use		hpgl
# la.hp
0	string	BP
>0		use		hpgl
# miter.hp
# Plot Absolute x,y{,x,y{...}}; x and y in range between -32767 and 32768 like: PA4000,3000;
0	string	PA
# skip shell scripts test_msa_run_32r5eb.sh test_msa_run_32r5eb.sh with variable PATH_TO_QEMU
# by checking for valid x coordinate
>2	regex	\^([-]{0,1}[0-9]{1,5})
#>2	regex	\^([-]{0,1}[0-9]{1,5})	COORDINATE=%s
>>0		use		hpgl
# pw.hpg	number of pens x
0	string	NP
>0		use		hpgl
# win_1.hp
#0	string	\003INCA		WHAT_IS_THAT
#>0		use		hpgl
# Reference:	http://mark0.net/download/triddefs_xml.7z/defs/h/hpgl2.trid.xml
# Note:		called "Hewlett-Packard Graphics Language 2" by TrID
0	string	\033%-1B		Hewlett-Packard Graphics Language 2
!:mime	application/vnd.hp-HPGL
# like: dt.plt
!:ext	plt
#!:ext	plt/gl2/hpg2/spl
# remaining part after escsape sequnce
>5	string	x			with "%-.10s"
#	display Hewlett-Packard Graphics Language vector graphic information
0	name				hpgl
>0	string	x			Hewlett-Packard Graphics Language
#!:mime	vector/x-hpgl
# https://www.iana.org/assignments/media-types/application/vnd.hp-HPGL
!:mime	application/vnd.hp-HPGL
# no example with HPL suffix found
!:ext	hpgl/hpg/hp/plt
# like: "IN;" "DF;IN;LT;PU1000,1000;PD2000,10" "SP6;DI0,1;SR0.70,1.90;SC0,800,"
# "CO Concentric circles drawn with different linewidths;"
>0	string	x			\b, starting with "%-.54s"
# continue but not for 1 long line without CR or LF
>>&0	ubyte	<0x0E
#>>&0	ubyte	<0x0E			TERMINATOR=%x
# second line after 1 terminator character
>>>&0	string	>\r			with "%-.10s"
# next character again CR or LF
>>>&0	ubyte	<0x0E
#>>>&0	ubyte	<0x0E			2ND_CHARACTER=%x
# second line after 2 terminator characters
>>>>&0	string	>\r			with "%-.10s"