实现将信息作为txt,pdf,图片的形式保存到电脑~

这篇具有很好参考价值的文章主要介绍了实现将信息作为txt,pdf,图片的形式保存到电脑~。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

PrintableUtils作为输出信息的工具类:

package org.example;
import com.itextpdf.text.*;
import com.itextpdf.text.Font;
import com.itextpdf.text.pdf.PdfWriter;
import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class PrintableUtils{
    public static void saveAsTxtImage(Object object, String fileName) throws IOException {//将对象信息保存为image形式
        //Image(其全路径为java.awt.Image)是一个抽象类,BufferedImage是其实现类
        /*BufferedImage主要作用是将一幅图片加载到内存中
        * */
        BufferedImage image = new BufferedImage(500, 500, BufferedImage.TYPE_4BYTE_ABGR);
        /*Graphics类提供绘制各种基本的几何图形
        * Graphics2D与Graphics类相比能够处理二维图形*/
        // 获取图形对象
        Graphics2D graphics = image.createGraphics();
        // 修改画布背景为粉色
        graphics.setBackground(Color.PINK);
        //将图形区域内部的内容清除,使其变为透明或者指定的背景色
        graphics.clearRect(0, 0, image.getWidth(), image.getHeight());
        // 修改字体为黑色
        graphics.setColor(Color.BLACK);
        // 将object对象的信息写入
        graphics.drawString("Order ID: " + object.toString(), 50, 50);
        // ImageIO可以从本地文件中读取图片和写入图片,也可以从网络上读取图片写入本地文件中
        //将图片的信息保存到名字为filename的文件中,将其保存到磁盘
        ImageIO.write(image, "png", new File(fileName));
    }
    public static void saveAsPdf(Object object, String fileName) {//将对象信息保存为pdf形式
        try {
            Document document = new Document();
            //PdfWriter是iText库中的一个类,用于将文档内容写入到PDF文件中
            //getInstance()是PdfWriter类的静态方法,用于获取一个PdfWriter对象的实例
            PdfWriter.getInstance(document, new FileOutputStream(fileName));
            document.open();
            // 设置字体
            Font font = new Font(Font.FontFamily.HELVETICA, 12, Font.BOLD);
            // 创建段落对象
            Paragraph paragraph = new Paragraph(object.toString(), font);
            // 添加段落到文档中--add的参数类型必须为Element
            document.add(paragraph);
            // 关闭文档
            document.close();
        } catch (DocumentException | FileNotFoundException e) {
            e.printStackTrace();
        }
    }
    public static void saveAsTxt(Object object, String fileName) {//将对象信息保存为txt形式
        try {
            // 创建文件输出流
            FileOutputStream fos = new FileOutputStream(fileName);
            // 将信息写入文件
            fos.write(object.toString().getBytes());
            // 关闭文件输出流
            fos.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

实体类:

package org.example;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class Animal {
    private String name;
    private String type;
}

测试类:

package org.example;

public class Test {
    public static void main(String[] args) {
 			//我这里直接是默认输出到电脑当前项目的目录下,所以只传入了文件名
        Animal animal=new Animal("huahua","dog");
        PrintableUtils.saveAsPdf(animal,"animal.pdf");
        PrintableUtils.saveAsTxtImage(animal,"animal.png");
        PrintableUtils.saveAsTxt(animal,"animal.txt");
    }
}

相关的依赖:

<dependency>
            <groupId>com.itextpdf</groupId>
            <artifactId>itextpdf</artifactId>
            <version>5.5.11</version>
        </dependency>
        <dependency>
            <groupId>com.itextpdf</groupId>
            <artifactId>itext-asian</artifactId>
            <version>5.2.0</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.16.12</version>
        </dependency>
        <dependency>
            <groupId>com.itextpdf</groupId>
            <artifactId>itextpdf</artifactId>
            <version>5.5.13.1</version>
        </dependency>

关于这个功能的实现,策略者模式也可以,但是对比了一下,策略者模式实现该功能会增加类的个数,但策略者模式满足开闭原则,后期如果有了新的打印方法,不用修改源代码,只需要增加新的即可,没有最好的技术只有最合适的技术,无论使用哪种方法还是需要根据实际开发进行选择!文章来源地址https://www.toymoban.com/news/detail-794951.html

到了这里,关于实现将信息作为txt,pdf,图片的形式保存到电脑~的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java Word转PDF(直接转和以图片形式转)、PDF转图片、图片转PDF

    在淘宝上找了一家写代码的店铺写了一个工具类,再参考网上的代码,改了改 用到的类库: 工具类代码:

    2024年02月12日
    浏览(44)
  • Python — 获取电脑串口数据并保存到txt文件

    打开设备管理器,双击端口设备,点击端口设置,这里面的参数需要与下面代码中的参数保持一致。 注意事项: 1、设置匹配的波特率; 2、设置对应的串口号; 以下是一段Python代码,可以读取 Windows 电脑上串口的数据并将其保存到一个文本文件中: 请注意, 上述代码中的

    2024年02月11日
    浏览(44)
  • 可以这样获取网页中的canvas内容,并且以图片的形式保存在本地

    1.获取canvas元素。我们可以使用JavaScript的document.getElementById()或document.querySelector()方法来获取canvas元素。 2.获取canvas的绘图上下文。我们可以使用canvas.getContext()方法获取canvas的绘图上下文。 3.使用toDataURL()方法将canvas内容转换为图片的base64编码。该方法接受一个参数,用于指定

    2024年02月12日
    浏览(45)
  • 【学习记录20】vue使用blob流预览word ,Excel,pdf,TXT,图片,视频

    TXT,PDF直接使用浏览器本身预览 excel使用插件 xlsx, 这个插件需要用到arraybuffer的流格式,我是使用前端转换的详见js代码,也可以叫后台返回arraybuffer的数据流 word 使用插件  docx-preview 话不多说直接上菜,css样式自己调就行 npm install xlsx --save npm install docx-preview --save 思路来

    2024年02月13日
    浏览(46)
  • yolov5检测(前向)输入视频输出(不在图上画标签形式的原)图片的方法,及设置每隔几帧保存的方式(不每帧保存减少重复)

    这些天我忽然有个需求,要更新迭代一个场景的检测模型,甲方爸爸提供的新数据集是监控视频形式的(因为拍视频确实更加的方便),而我训练模型确实要标注好的图片形式。 根据这些条件的话,思路应该是要这样的:首先使用现有的最新一个模型输入视频进行检测,检测结

    2024年01月21日
    浏览(40)
  • Java批量下载书籍图片并保存为PDF的方法

    因为经常出差火车上没网、不方便电子书阅读器批注,需要从某网站上批量下载多本书籍的图片并自动打包成PDF文件。 1、尝试获得图片地址,发现F12被禁 解决方法:使用Chrome浏览器,点击右上角三个点呼出菜单,选择“更多工具”-“开发者工具” 或者使用Ctrl+Shift+C、Ctrl

    2024年02月13日
    浏览(42)
  • 电脑如何pdf转图片?pdf转图片工具介绍

    无论是为了共享、展示、编辑、安全保护、印刷出版、学术研究还是教育目的,使用电脑pdf转图片都是一种非常实用的工具和技术,它提供了更多的灵活性、可视化效果和安全性,适用于各种日常使用场景,那么有没有好用的pdf转图片工具推荐呢?当然有啦,小编今天分享的

    2024年01月23日
    浏览(39)
  • 【uniapp】实现对TXT文本文件的读取和保存下载

    开发一个uniapp项目时,需要实现对文本的读取和保存文件到本地,虽然可以跨平台,但还是有几个平台不受支持的,接下来讲讲怎么兼容处理读写文本文件这个问题。 项目都按照uniapp官方文档说明写,发现此功能对应的 App 和 H5 平台是没有实现的 App H5 微信小程序 QQ小程序

    2024年02月04日
    浏览(47)
  • Windows10批处理获取电脑的详细信息并保存在指定路径

    一、使用WMIC查询电脑硬件信息 1、命令行使用WMIC查询Windows系统的硬件信息命令 二、创建批处理文件获取电脑的详细信息 ①新建一个文本文件,然后修改该文本文件的名称为(获取本机详细信息)后缀名为(.bat) ②批处理文件的内容为: ③选中(获取本机详细信息.bat)文

    2024年02月07日
    浏览(48)
  • 【发票识别】支持pdf、ofd、图片格式(orc、信息提取)的发票

    为了能够满足识别各种发票的功能,特地开发了当前发票识别的功能,当前的功能支持pdf、ofd、图片格式的发票识别,使用到的技术包括文本提取匹配、ocr识别和信息提取等相关的技术,用到机器学习和深度学习的相关技术。 体验地址:https://invoice.behappyto.cn/invoice-service/ 体

    2024年01月16日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包