使用Java和iText以PDF格式生成的卡片组

使用Java和iText以PDF格式生成的卡片组,java,pdf,Java,Pdf,我有下一个问题: 我已经用PDF创建了一个表,但我正在尝试找到如何用空格分隔单元格,使它们看起来像一张卡片 我无法在PDF中打印/显示西装。我得到了军衔,但西装不见了。我尝试了几种字体,但没有成功 有什么想法吗 import java.io.FileOutputStream; import java.io.IOException; import com.itextpdf.text.BaseColor; import com.itextpdf.text.Chapter; import com.i

我有下一个问题:

  • 我已经用PDF创建了一个表,但我正在尝试找到如何用空格分隔单元格,使它们看起来像一张卡片
  • 我无法在PDF中打印/显示西装。我得到了军衔,但西装不见了。我尝试了几种字体,但没有成功
  • 有什么想法吗

    import java.io.FileOutputStream;
    import java.io.IOException;
    
    import com.itextpdf.text.BaseColor;
    import com.itextpdf.text.Chapter;
    import com.itextpdf.text.Document;
    import com.itextpdf.text.DocumentException;
    import com.itextpdf.text.Element;
    import com.itextpdf.text.Font;
    import com.itextpdf.text.List;
    import com.itextpdf.text.ListItem;
    import com.itextpdf.text.Paragraph;
    import com.itextpdf.text.Phrase;
    import com.itextpdf.text.Section;
    import com.itextpdf.text.pdf.BaseFont;
    import com.itextpdf.text.pdf.PdfPCell;
    import com.itextpdf.text.pdf.PdfPTable;
    import com.itextpdf.text.pdf.PdfWriter;
    
    public class DeckOf52Cards {
        public static void main(String[] args) throws DocumentException,IOException {
    
            Document generatePDF = new Document();
    
            FileOutputStream someName = new FileOutputStream("DeckOf52Cards.pdf");
    
            PdfWriter.getInstance(generatePDF, someName);
    
            generatePDF.open();
    
            BaseFont downloaded = BaseFont.createFont("Burn outfade away.ttf",BaseFont.IDENTITY_H,true);
    
            Font[] someStyle = {
                    new Font(downloaded, 40, 0, new BaseColor (0,0,0)),
                    new Font(downloaded, 40, 0, new BaseColor(255,0,0))             
                };  
    
            PdfPTable table = new PdfPTable(4);     
    
    
            String[] ranks ={"2","3","4","5","6","7","8","9","10","J","Q","K","A"};
            char[] suits = {'\u2660','\u2663','\u2666','\u2665'};
    
    
            for (int i = 0; i < ranks.length; i++) {
                for (int j = 0; j < suits.length; j++) {
    
                    if (suits[j] == '\u2666' || suits[j] == '\u2665') {
                        table.addCell(new Paragraph(suits[j] + ranks[i] + "",someStyle[0]));
                    }
                    else {
                        table.addCell(new Paragraph(ranks[i] + suits[j] + "",someStyle[1]));
                    }
                }
            }       
            generatePDF.add(table);
            generatePDF.close();
        }
    }
    
    import java.io.FileOutputStream;
    导入java.io.IOException;
    导入com.itextpdf.text.BaseColor;
    导入com.itextpdf.text.Chapter;
    导入com.itextpdf.text.Document;
    导入com.itextpdf.text.DocumentException;
    导入com.itextpdf.text.Element;
    导入com.itextpdf.text.Font;
    导入com.itextpdf.text.List;
    导入com.itextpdf.text.ListItem;
    导入com.itextpdf.text.paragration;
    导入com.itextpdf.text.Phrase;
    导入com.itextpdf.text.Section;
    导入com.itextpdf.text.pdf.BaseFont;
    导入com.itextpdf.text.pdf.PdfPCell;
    导入com.itextpdf.text.pdf.PdfPTable;
    导入com.itextpdf.text.pdf.PdfWriter;
    公共类52张卡片{
    公共静态void main(字符串[]args)引发DocumentException、IOException{
    Document generatePDF=新文档();
    FileOutputStream someName=新的FileOutputStream(“DeckOf52Cards.pdf”);
    getInstance(generatePDF,someName);
    generatePDF.open();
    BaseFont下载=BaseFont.createFont(“Burn outfade away.ttf”,BaseFont.IDENTITY\u H,true);
    Font[]someStyle={
    新字体(已下载,40,0,新基色(0,0,0)),
    新字体(已下载,40,0,新基色(255,0,0))
    };  
    PdfPTable=新的PdfPTable(4);
    字符串[]排名={“2”、“3”、“4”、“5”、“6”、“7”、“8”、“9”、“10”、“J”、“Q”、“K”、“A”};
    char[]suites={'\u2660','\u2663','\u2666','\u2665'};
    for(int i=0;i
    您确定使用的字体包含这些字符吗?(大多数字体都没有。)第一次尝试是使用最常用的字体-arial,但同时-什么也没有出现。我撒谎了。重新启动后,它们会出现-使用arial。很好,谢谢。但是我仍然在寻找信息,我如何才能在这个表中创建空格/分隔/单元格。我将非常感谢你的帮助。