PDF的box: MediaBox、CropBox、BleedBox、TrimBox和ArtBox

一个PDF描述了一页或者多页的内容,一页的准确大小很可能不是你想的那样。在PDF中共有5个不同的大小描述术语。它们统称为page box:

  • MediaBox用来描述页面的高度和宽度。对于普通用户,这个大小很可能等同于实际的页面大小。对于用于印前处理,就不太适合,因为我们更希望将页面定义得稍微大一点以便让我们看到页面的bleed(bleed是什么?下面有解释,国外的一个网站介绍的)、裁剪标记和有用的信息比如文件名或者文件创建的时间日期。这就意味着用于图形印刷品的PDF通常其MediaBox比裁剪页面大小稍大。MediaBox是一个页面中最大的box。其他的box可以和它一样大,但绝不可以比它大。
  • CropBox 定义了页面内容的裁剪到区域.Adobe Acrobat软件使用这个来显示和打印页面. 如果用于印前处理,这个box就太不着调了. GWG工业协会建议完全不要使用CropBox
  • BleedBox 定义了当用于生产环境时页面内容将被裁剪到的区域。通常BleedBox比TrimBox大3到5毫米。知道BleedBox的大小是很有必要的,但是在图形产品中这个box不是很重要。多数印前处理系统允许你设定bleed的大小从而忽略BleedBox。默认情况下,BleedBox与CropBox相等。
  • TrimBox 定义了最终页面想要的尺寸。与CropBox相反,TrimBox非常重要,因为它定义了页面的实际大小。我所知道的所有的装版和工作流都使用TrimBox作为压印机上的页面定位基准。默认情况下,TrimBox与CropBox相等。当创建PDF/X-1a 或者 PDF/X-3兼容PDF文件时,系统要求MediaBox, TrimBox 和 BleedBox必须被正确地定义。
  • ArtBox 有点特殊。它定义了某些特殊用途的页面中的区域。它很少被程序用到。有一种情况会使用到它是在控制页面广告。如果一个页面有广告,那么ArtBox定义了广告区域的大小。
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,下面我给您提供一个使用Swing编写的图形界面程序,实现姓名、学号、班级、性别、兴趣爱好的输入和展示: ```java import javax.swing.*; import java.awt.*; public class StudentInfoGUI extends JFrame { private JLabel nameLabel, idLabel, classLabel, genderLabel, hobbyLabel; private JTextField nameField, idField; private JComboBox<String> classComboBox; private JRadioButton maleRadio, femaleRadio; private JCheckBox sportBox, musicBox, artBox; private JButton submitButton, clearButton; public StudentInfoGUI() { initUI(); setTitle("学生信息录入"); setSize(400, 300); setLocationRelativeTo(null); setDefaultCloseOperation(EXIT_ON_CLOSE); setVisible(true); } private void initUI() { //初始化组件 nameLabel = new JLabel("姓名:"); idLabel = new JLabel("学号:"); classLabel = new JLabel("班级:"); genderLabel = new JLabel("性别:"); hobbyLabel = new JLabel("兴趣爱好:"); nameField = new JTextField(10); idField = new JTextField(10); classComboBox = new JComboBox<>(); classComboBox.addItem("计算机科学与技术"); classComboBox.addItem("软件工程"); classComboBox.addItem("网络工程"); maleRadio = new JRadioButton("男"); femaleRadio = new JRadioButton("女"); ButtonGroup genderGroup = new ButtonGroup(); genderGroup.add(maleRadio); genderGroup.add(femaleRadio); sportBox = new JCheckBox("运动"); musicBox = new JCheckBox("音乐"); artBox = new JCheckBox("艺术"); submitButton = new JButton("提交"); clearButton = new JButton("清空"); //设置布局 setLayout(new GridBagLayout()); GridBagConstraints c = new GridBagConstraints(); c.gridx = 0; c.gridy = 0; c.insets = new Insets(10, 10, 10, 10); add(nameLabel, c); c.gridx = 1; add(nameField, c); c.gridx = 0; c.gridy = 1; add(idLabel, c); c.gridx = 1; add(idField, c); c.gridx = 0; c.gridy = 2; add(classLabel, c); c.gridx = 1; add(classComboBox, c); c.gridx = 0; c.gridy = 3; add(genderLabel, c); c.gridx = 1; JPanel genderPanel = new JPanel(); genderPanel.add(maleRadio); genderPanel.add(femaleRadio); add(genderPanel, c); c.gridx = 0; c.gridy = 4; add(hobbyLabel, c); c.gridx = 1; JPanel hobbyPanel = new JPanel(); hobbyPanel.setLayout(new GridLayout(3, 1)); hobbyPanel.add(sportBox); hobbyPanel.add(musicBox); hobbyPanel.add(artBox); add(hobbyPanel, c); c.gridx = 0; c.gridy = 5; add(submitButton, c); c.gridx = 1; add(clearButton, c); } public static void main(String[] args) { new StudentInfoGUI(); } } ``` 这段代码中,我们使用了GridLayout和GridBagConstraints来设置图形界面的布局。其中,姓名、学号、班级、性别、兴趣爱好的输入框和下拉菜单都是使用了Swing提供的组件实现的。 在这个程序中,我们通过JRadioButton和ButtonGroup来实现了性别的单选功能,通过JCheckBox来实现了兴趣爱好的多选功能。提交和清空按钮则是使用了JButton组件。 这个程序的界面比较简单,您可以根据需要自行修改样式和布局。对于数据的存储,您可以使用文件或数据库等方式进行存储。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值