169: def prepress(options = { })
170: pdf = self.new(options)
171:
172: bleed_size = options[:bleed_size] || 12
173: mark_length = options[:mark_length] || 18
174:
175: pdf.left_margin = options[:left_margin] if options[:left_margin]
176: pdf.right_margin = options[:right_margin] if options[:right_margin]
177: pdf.top_margin = options[:top_margin] if options[:top_margin]
178: pdf.bottom_margin = options[:bottom_margin] if options[:bottom_margin]
179:
180:
181:
182: tx0 = pdf.pages.media_box[0] + pdf.left_margin
183: ty0 = pdf.pages.media_box[3] - pdf.top_margin
184: tx1 = pdf.pages.media_box[2] - pdf.right_margin
185: ty1 = pdf.pages.media_box[1] + pdf.bottom_margin
186:
187: bx0 = tx0 - bleed_size
188: by0 = ty0 - bleed_size
189: bx1 = tx1 + bleed_size
190: by1 = ty1 + bleed_size
191:
192: pdf.pages.trim_box = [ tx0, ty0, tx1, ty1 ]
193: pdf.pages.bleed_box = [ bx0, by0, bx1, by1 ]
194:
195: all = pdf.open_object
196: pdf.save_state
197: kk = Color::CMYK.new(0, 0, 0, 100)
198: pdf.stroke_color! kk
199: pdf.fill_color! kk
200: pdf.stroke_style! StrokeStyle.new(0.3)
201:
202: pdf.prepress_clip_mark(tx1, ty0, 0, mark_length, bleed_size)
203: pdf.prepress_clip_mark(tx0, ty0, 90, mark_length, bleed_size)
204: pdf.prepress_clip_mark(tx0, ty1, 180, mark_length, bleed_size)
205: pdf.prepress_clip_mark(tx1, ty1, -90, mark_length, bleed_size)
206:
207: mid_x = pdf.pages.media_box[2] / 2.0
208: mid_y = pdf.pages.media_box[3] / 2.0
209:
210: pdf.prepress_center_mark(mid_x, ty0, 0, mark_length, bleed_size)
211: pdf.prepress_center_mark(tx0, mid_y, 90, mark_length, bleed_size)
212: pdf.prepress_center_mark(mid_x, ty1, 180, mark_length, bleed_size)
213: pdf.prepress_center_mark(tx1, mid_y, -90, mark_length, bleed_size)
214:
215: pdf.restore_state
216: pdf.close_object
217: pdf.add_object(all, :all)
218:
219: yield pdf if block_given?
220:
221: pdf
222: end