java将PDF转为tif文件_java - 使用JAI在JAVA中将二进制文本转换为Tiff图像/ PDF - 堆栈内存溢出..._weixin_39657521的博客-程序员秘密

技术标签: java将PDF转为tif文件  

我有不同的要求。 我正在接收TIFF图像作为二进制文本。 我不知道是否可以调用该二进制文本。 文本包含非ASCII字符,如下所示

0ÎÀi7°èý¯Â£ôîÀk1 ü"»£ð‚£Ê£ðü»£ö¿

ŒGÓº?¬hÄr€kðŠîÂ

ŒG*Àkð

¸z «ÿ*ëÿ¢^˾6‚¢êZÒáÿì)eì"‚("¿ÿ€jPšÄ0?P€ª ê¨Eý5?J†¤=oöÃ|(0Ã6ªP†!*¯Ä0ÿ*¢uÝ¡0Š­jþ &&—ÿ

+§¾È°Ã¡-s§‚2“³˜Î{é¾pªXp%&ì;PËæ4ºfŒ˜Îÿ Éû½)¨ŽV“þp¦IÇG˜bþñÿÿi•¼

因此,我很疲倦地使用以下代码使用imageIO读取此文本,但是会引发错误。

String str = "Binary Mentioned Above";

byte[] b = str.getBytes();

ByteArrayInputStream in = new ByteArrayInputStream(b);

BufferedImage bImageFromConvert = ImageIO.read(in);

TIFFEncodeParam params = new TIFFEncodeParam();

File myNewTIFF_File = new File("C:\\Projects\\test\\combined.tif");

ImageIO.write(bImageFromConvert, "TIFF", myNewTIFF_File);

我收到的错误消息是

Exception in thread "main" java.lang.IllegalArgumentException: image == null!

现在浏览这些帖子,我发现并不是所有的TIF都可以使用ImageIO读取。 因此,我在线使用了一个代码,该代码基本上将TIFF转换为PDF。

public static String ImageToPDF(byte[] bytes, String pathFile) {

String fileName= pathFile + ".pdf";

Document document = null;

document = new Document();

try {

FileOutputStream fos = new FileOutputStream(fileName);

PdfWriter writer = PdfWriter.getInstance(document, fos);

writer.open();

document.open();

// Array of bytes we have read from the Binary file

RandomAccessFileOrArray ra = new RandomAccessFileOrArray(bytes);

System.out.println("ra ---- "+ra);

// Get the number of pages the the binary file have inside

int numberOfPages = TiffImage.getNumberOfPages(ra);

System.out.println("numberOfPages ------------ "+numberOfPages);

// Loop through numberOfPages and add them on the document

// one by one

for(int page = 1; page <= numberOfPages; page ++){

Image image = TiffImage.getTiffImage(new RandomAccessFileOrArray(bytes),page);

image.scaleAbsolute(500, 500);

document.add(image);

}

document.close();

writer.close();

} catch (Exception e) {

e.printStackTrace();

}

return fileName;

}

public static void main(String[] args) throws IOException{

File imgFront = new File("C:\\Projects\\newtest.txt");

byte[] fileContent = Files.readAllBytes(imgFront.toPath());

//fileContent = File

ImageToPDF(fileContent,"C:\\Projects\\pdfWithImage");

}

我收到错误的错误的Bad endianness tag (not 0x4949 or 0x4d4d) 。 此错误来自此行TiffImage.getNumberOfPages(ra); 当我尝试阅读Tiff中的页面时。 我验证了使用Mirth工具创建tiff的二进制文本,并且tiff有效。 我没有足够的方法来解决此问题。 任何帮助深表感谢。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39657521/article/details/114516026

智能推荐

vue 监听页面刷新或关闭-程序员秘密

参考:https://blog.csdn.net/weixin_43915587/article/details/93628935发现 beforeDestroy 只能监听到页面间的跳转,无法监听到页面刷新和关闭标签页。所以还是要借助 onbeforeunload 事件。顺便复习了一下 JavaScript 中的一些加载,卸载事件:页面加载时只执行 onload 事件。页面关闭时,先 onbeforeunload 事件,再 onunload 事件。页面刷新时先执行 onbeforeunload事件

计算机专业本专科生一样么,读专科报这3个专业,就业率比本科生还高,月薪过万完全有可能..._碍事的尾巴的博客-程序员秘密

原标题:读专科报这3个专业,就业率比本科生还高,月薪过万完全有可能如果说你的分数只够读专科,不要灰心,只要专业选得好,一样会有大好前程等着你的。2021年如果你的成绩没考好,自己不想复读,又不想这么年轻就走向社会,这个时候考生就只能选择读专科了。不要以为读专科就觉得没有了希望,千万不要妄自菲薄。有的时候,机会都是自己创造出来的,未来如何发展,与自己的选择是密切相关的。 现在,不管是什么学历的毕业生...

C++时间戳获取及转换_ff_tt的博客-程序员秘密

C++时间戳获取及转换时间戳的获取time_t tCurrentTime = time(NULL); //秒时间戳转换,格式化string StampToTime (time_t tCurrentTime){ struct tm tm; char strTimeType[11]; tm = *localtime(&amp;tCurrentTime); strftime(strTimeType,sizeof(strTimeType),"%Y%m%d%H",&amp;tm); str

写程序必备工具----IDE_CC创客论IT的博客-程序员秘密

写程序必备工具----IDE我们写过各种语言的代码,比如c/c++或python。如果没有一个好的编程工具,怎能写好程序?今天我来教大家下载一些编程工具----IDE。(本文以python为例)首先,我们在Microsoft edge中打开 jetbrains.com/PyCharm/ ,点击download,即可下载程序。下载好setup程序后,双击运行,注意:安装好之后,关联一下p...

ps常规操作之切图_苏幕遮。的博客-程序员秘密

1ctrl +r 选好范围切片工具&gt;切片工具选中图片ctrl +shift +alt +s:a: img格式b:png格式切片工具状态下右键删除切片》切换到移动工具在选中图片下右键选中要切的图 切换到选区工具,选中要修改的图ctrl +j 复制然后隐藏所在的背景图切片工具,然后选中要且的图,然后ctrl +shift +alt +s:保存以上。...

JAVA设计模式(06):结构型-适配器模式(Adapter)_taozihk的博客-程序员秘密

我的笔记本电脑的工作电压是20V,而我国的家庭用电是220V,如何让20V的笔记本电脑能够在220V的电压下工作?答案是引入一个电源适配器(AC Adapter),俗称充电器或变压器,有了这个电源适配器,生活用电和笔记本电脑即可兼容,如图1所示:图1 电源适配器示意图      在软件开发中,有时也存在类似这种不兼容的情况,我们也可以像引入一个电源适配器一样引入一个称之

随便推点

beef-xss软件使用教程_Satoshi Nakamoto的博客-程序员秘密

beef-xss教程实验环境打开beefxss登录 dvwa难度调到low实验环境beef-xss+kali2021打开beefxss打开对应的网址并登录http://192.168.2.157:3000/ui/panel然后我们回到虚拟机找到hook地址登录 dvwa难度调到low

org.springframework.data.redis.RedisSystemException: Unknown redis exception; nested exception is ja_qq_42072311的博客-程序员秘密

org.springframework.data.redis.RedisSystemException: Unknown redis exception; nested exception is java.util.concurrent.RejectedExecutionException: event executor terminated一段时间一直报这个错,然后就好了,求大佬解惑!!...

学习Python第十天,全局变量,递归_我是你哥!d的博客-程序员秘密

​在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。递归函数特性:必须有一个明确的结束条件;每次进入更深一层递归时,问题规模相比上次递归都应有所减少相邻两次重复之间有紧密的联系,前一次要为后一次做准备(通常前一次的输出就作为后一次的输入)。递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧。由于栈的大小不是无限的,所以,递归调用的次数过多

Struts2框架的基本使用(二)_struts框架_Single_YAM的博客-程序员秘密

上一篇 Struts2框架的基本使用 我们限于篇幅,最后简答介绍了Action的配置问题,本篇接着介绍有关框架的一些其他基本用法,主要内容如下:Action的基本配置result的基本配置Struts的异常处理机制Convention插件于“约定”的支持一、Action的基本配置      上篇文章我们简单的看了Struts.xml中的package包元素的一些属性的使用情况,接下来我们

Pytorch 出错集_未知量z的博客-程序员秘密

**错误1:**UserWarning: nn.functional.sigmoid is deprecated. Use torch.sigmoid instead.解决方法:找到nn.functional.sigmoid,将其替换为torch.sigmoid。参考:https://blog.csdn.net/dagewoshiwusong/article/details/108306325错误2. Target is multiclass but average=‘binary’. Please

XAF之SplashScreenManager_xafsplashscreen_qjpcpu的博客-程序员秘密

可以在XAF中使用SplashScreenManager设计出漂亮的欢迎界面和等待界面,使用方法参照帮助文档:http://help.devexpress.com/#WindowsForms/CustomDocument10826这里补充几点注意事项:1.在XAF中使用SpalshScreenManager显示SplashScreen,该SplashScreen必须实现ISplas

推荐文章

热门文章

相关标签