我想从Java的MySQL数据库中检索数学方程,并使用ITextPDF将其写入PDF文件。
我尝试在数据库连接中将字符编码设置为UTF8,然后我从数据库中检索以字节为单位的数据,将其转换为字符串,然后将其添加到我的文档中。生成的pdf文件没有任何数学符号。Java是罪魁祸首还是iTextPDF?
public class MathematicalEquation {
static final String DEST = "D://Zaid/MathemaicalEquations/test101.pdf";
static final String FONT = "D://Zaid/MathematicalEquations/FreeSans.ttf";
public static void main(String[] args) throws SQLException, DocumentException, IOException {
File file = new File(DEST);
file.getParentFile().mkdirs();
FileOutputStream fos = new FileOutputStream(DEST);
PdfWriter writer = new PdfWriter(fos);
PdfDocument pdf = new PdfDocument(writer);
Document document = new Document(pdf);
Cell cell = new Cell();
Table table = new Table(new float[] {50,5});
BaseFont bf = BaseFont.createFont(FONT, BaseFont.IDENTITY_H, BaseFont.EMBEDDED, true);
Font f = new Font(bf);
Connection myConn = DriverManager.getConnection("jdbc:mySql://127.0.0.1/MathematicalProblem?useUnicode=yes&characterEncoding=UTF-8", "root", "Mobilen0");
Statement myStmt = myConn.createStatement();
ResultSet myRs = null;
myStmt.executeQuery("SET NAMES 'UTF8'");
myStmt.executeQuery("SET CHARACTER SET UTF8");
myRs = myStmt.executeQuery("SELECT * FROM equations");
byte[] imageBytes=null;
Blob image1=null;
ImageData imgData;
Image image = null;
Paragraph para = new Paragraph();
byte[] equation = null;
while(myRs.next()) {
equation = myRs.getString("equation").getBytes("UTF-8");
image1 = myRs.getBlob("image");
}
if(image1!=null) {
imageBytes = image1.getBytes(1, (int) image1.length());
imgData = ImageDataFactory.create(imageBytes);
image = new Image(imgData);
}
String s = Base64.getEncoder().encodeToString(equation);
String decodedEquation = new String(Base64.getDecoder().decode(s), StandardCharsets.UTF_8);
para = new Paragraph(String.format("%s%n " , decodedEquation, f));
cell.add(para).setBorder(Border.NO_BORDER);
if(image1!=null) {
cell.add(image.scaleAbsolute(100, 100))
.setBorder(Border.NO_BORDER);
}
table.addCell(cell);
document.add(table);
document.close();
myRs.close();
myStmt.close();
myConn.close();
}
}
输出:4 x 25÷5=?
预期输出为:√4 x√25÷5=?
输出是base64编码的。你需要先解码。
将此decodedEquation添加到pdf
String decodedEquation = new String(Base64.getDecoder().decode(equation), StandardCharsets.UTF_8);
是否正确?现在,当我尝试从数据库中检索blob数据时,它每次都会更改,为什么?那么如何检索此图像呢?以下是我尝试过的代码: 我没有看到任何图像。为什么?请帮忙。谢谢
我是新来的。我已经成功地使用python将消息发送到IOT中心(D2C)。我们使用的协议是mqtt。我们正在尝试使用java从云(IOT中心)检索数据,但无法找到从云接收消息的正确方法。我的疑问是我们是否可以直接从IOT中心读取消息,或者我们需要将传入消息重定向到事件中心来检索消息。 我还尝试在向云发送数据的同时从java中的iothub读取消息,但得到的错误如下。。(与服务器的连接中断。重新连接
问题内容: 我有以下表格及其关系。我将JSON数据存储在client_services表中。它们是使用MySQL查询来检索JSON值的任何方式,如下所示: 还是可以进一步规范化client_services表? 表: 表: 表: 表: 问题答案: 由于很多人都亲自问过我这个问题,所以我想我会再作一次修改。这是一个具有SELECT,Migration和View Creation的完整SQL的要点,
问题内容: 我们如何从文本字段中检索值?我需要将值转换为进一步处理。我已经在单击按钮时创建了一个文本字段,我需要存储输入到中的值,你能提供一个代码段吗? 问题答案: 参见Java文档中的JTextField 示例代码可以是:
问题内容: 我已经完成了将记录插入数据库的操作,但是我不知道如何检索它。我的代码是: Account.java: MyAccount.java: insert.html: web.xml: 当用户单击“检索”按钮时,如何从数据库检索数据,并以另一HTML格式显示所有记录?请提供有关操作方法的建议。 在我的应用程序中,当用户单击检索按钮时,它正在执行插入操作。但是我想要的是,当用户单击它时,应该转到
问题内容: :我只想显示Mysql表记录的简单ajax代码: Records.php是用于从Mysql提取记录的文件。 在数据库中只有两个字段:“名称”,“地址”。 该代码不起作用。 问题答案: 为了使用Ajax + jQuery检索数据,您应该编写以下代码: 对于mysqli连接,请编写以下代码: 为了显示数据库中的数据,您应该这样编写: