食品安全法律小助手
1、前言
从事食品相关工作,必须办理健康证,。现在粤省事app上可查看健康证,并且附带相关法律文件pdf,于是下载下来喂给GPT。让GPT学习,我不学习。
2、pdf转成txt文件
要使用Java将PDF文件转换为文本文件,您可以使用Apache PDFBox库,这是一个开源项目,可以从PDF文件中提取文本。
首先,确保将PDFBox添加到您的项目依赖中。如果您使用的是Maven,可以在pom.xml
中添加以下依赖:
<dependencies>
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>2.0.24</version>
</dependency>
</dependencies>
确保使用最新版本的PDFBox。
以下是用Java编写的一个简单的程序,使用PDFBox库将PDF转换为文本文件:
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.text.PDFTextStripper;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
public class PdfToTxtConverter {
public static void convertPdfToTxt(String pdfFilePath, String txtFilePath) {
// 加载PDF文档
try (PDDocument document = PDDocument.load(new File(pdfFilePath))) {
if (!document.isEncrypted()) {
// 使用PDFTextStripper来提取文本
PDFTextStripper stripper = new PDFTextStripper();
String text = stripper.getText(document);
// 将提取的文本写入到.txt文件中
try (FileWriter writer = new FileWriter(txtFilePath)) {
writer.write(text);
System.out.println("Text was successfully extracted and saved to " + txtFilePath);
}
} else {
System.err.println("PDF is encrypted, cannot extract text.");
}
} catch (IOException e) {
System.err.println("An error occurred while converting the PDF to a text file: " + e.getMessage());
}
}
public static void main(String[] args) {
// 指定PDF路径和希望保存文本文件的路径
String pdfFilePath = "path/to/your/document.pdf";
String txtFilePath = "path/to/your/output.txt";
// 调用方法来转换文件
convertPdfToTxt(pdfFilePath, txtFilePath);
}
}
将上面代码中的pdfFilePath
和txtFilePath
替换成实际的PDF文件路径和希望输出的文本文件路径。
运行上述程序,它将把PDF文件内容转换为纯文本并保存到指定的文件路径。请注意,由于版权或技术限制,某些PDF文件可能不允许文本提取。
3、txt文件分割成一小段文字
public class LawArticleSplitter {
public static void main(String[] args) {
String lawText = "第一条 为了做好饮料生产许可审查工作,依据《中华人民\n" +
"共和国食品安全法》及其实施条例、《食品生产许可管理办法》、\n" +
"等有关法律法规、规章,制定饮料生产许可审查细则(以下简称\n" +
"细则)。\n" +
"第二条 本细则应与《食品生产许可审查通则》结合使用,\n" +
"适用于饮料生产许可审查工作。仅有包装场地、工序、设备,没\n" +
"有合理的设备布局和工艺流程的,不予生产许可。";
// Splitting the law text into individual articles
String[] articles = lawText.split("第[0-9]+条");
// Output the first two articles
System.out.println("第一条:" + articles[1]);
System.out.println("第二条:" + articles[2]);
}
}
4、一小段文字喂给数据库
要将一小段文字存储到数据库中,您需要选择一个数据库系统并建立数据库连接。以下示例将展示如何使用Java与MySQL数据库进行交互,并存储一段文字。
假设您已经有了一个名为mydb
的MySQL数据库,并且在这个数据库中有一个名为texts
的表格,该表格包含两个字段:id
(主键)和content
(用于存储文本)。
首先,您需要添加MySQL JDBC驱动程序到项目依赖中。如果您使用Maven,可以在pom.xml
中添加以下依赖:
<dependencies>
<!-- MySQL JDBC Driver -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.23</version>
</dependency>
</dependencies>
确保使用适合您MySQL服务版本的驱动程序版本。
下面是一个简单的Java代码片段,演示如何将一段文字插入到MySQL数据库中:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class DatabaseTextInserter {
private static final String URL = "jdbc:mysql://localhost:3306/mydb";
private static final String USER = "yourUsername";
private static final String PASSWORD = "yourPassword";
private static final String INSERT_TEXT_SQL = "INSERT INTO texts (content) VALUES (?)";
public static void insertText(String text) {
// 使用try-with-resources语句自动关闭资源
try (
Connection conn = DriverManager.getConnection(URL, USER, PASSWORD);
PreparedStatement preparedStatement = conn.prepareStatement(INSERT_TEXT_SQL)
) {
preparedStatement.setString(1, text);
int rowAffected = preparedStatement.executeUpdate();
if(rowAffected > 0){
System.out.println("A piece of text was inserted successfully!");
}
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
String textToStore = "Here is a small piece of text to store in the database.";
insertText(textToStore);
}
}
在上述代码中替换URL
, USER
, 和 PASSWORD
的值以匹配您的数据库信息。textToStore
变量应包含您希望存储到数据库的文本。
运行此代码时,它将尝试将提供的文本插入到数据库中。记得处理好数据库配置和权限,否则可能会遇到连接问题或权限错误。
注意:真实环境中,对数据库进行操作时,你应该考虑使用连接池提高性能,处理好异常情况,以及防止SQL注入等安全问题。