代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
VB.Net
】
转换图片到pdf
作者:
雷霆
/ 发布于
2015/2/28
/
1636
Imports System.Drawing Imports System.Text Imports System.IO Imports iTextSharp.text Imports iTextSharp.text.pdf '首先需要引用itextsharp.dll,一个开源dll,直接到官网下载 '此函数主要处理从数据库等地来的图像,接收二进制流 Public Function ConvertImageToPDF(ByVal fileBuffer As Byte()) As Byte() Dim pages As New List(Of [String])() Dim result() As Byte Dim image As iTextSharp.text.Image Dim mStream As New MemoryStream() Dim bm As Bitmap Dim ImageStream As New MemoryStream(fileBuffer) Dim pageCount As Integer Dim document As New Document(iTextSharp.text.PageSize.LETTER, 20, 20, 20, 20) 'pdf 'PdfWriter.GetInstance(document, New FileStream(desPath + name & ".pdf", FileMode.OpenOrCreate)) PdfWriter.GetInstance(document, mStream) document.Open() Try bm = New Bitmap(ImageStream) pageCount = bm.GetFrameCount(System.Drawing.Imaging.FrameDimension.Page) For i As Integer = 0 To pageCount - 1 '处理多页 bm.SelectActiveFrame(System.Drawing.Imaging.FrameDimension.Page, i) image = iTextSharp.text.Image.GetInstance(bm, System.Drawing.Imaging.ImageFormat.Bmp) ''A4 'If image.Height > iTextSharp.text.PageSize.A4.Height - 25 Then ' image.ScaleToFit(iTextSharp.text.PageSize.A4.Width - 25, iTextSharp.text.PageSize.A4.Height - 25) 'ElseIf image.Width > iTextSharp.text.PageSize.A4.Width - 25 Then ' image.ScaleToFit(iTextSharp.text.PageSize.A4.Width - 25, iTextSharp.text.PageSize.A4.Height - 25) 'End If 'Letter If image.Height > iTextSharp.text.PageSize.LETTER.Height - 20 Then image.ScaleToFit(iTextSharp.text.PageSize.LETTER.Width - 20, iTextSharp.text.PageSize.LETTER.Height - 20) ElseIf image.Width > iTextSharp.text.PageSize.LETTER.Width - 20 Then image.ScaleToFit(iTextSharp.text.PageSize.LETTER.Width - 20, iTextSharp.text.PageSize.LETTER.Height - 20) End If 'center image.Alignment = iTextSharp.text.Image.ALIGN_MIDDLE document.NewPage() document.Add(image) Next Catch ex As Exception End Try Try document.Close() Catch ex As Exception Return Nothing End Try result = mStream.GetBuffer Return result End Function ———————————————————————————————————————————— '此函数主要处理来自于硬盘的图像 Public Function ConvertImageToPDF(ByVal desPath As String, ByVal name As String) As Byte() Dim ImageStream As FileStream Try ImageStream = New FileStream(desPath & name, FileMode.Open) Catch ex As Exception Return Nothing End Try Dim result(ImageStream.Length) As Byte ImageStream.Read(result, 0, result.Length) ImageStream.Close() result = ConvertImageToPDF(result) Return result End Function —————————————————————————————————————————————— '使用 Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load '以将图片读取到二进制流中,模拟从数据库中取数据 Dim path As String = "E:/PrintFiles/Image/" Dim name As String = "Customer Collections Detail0065.tif" Dim fileStream As New FileStream(path + name, FileMode.Open) Dim sRdr As New BinaryReader(fileStream) Dim buffer(fileStream.Length) As Byte sRdr.Read(buffer, 0, fileStream.Length) '转换图片到PDF Dim Attachment() As Byte = ConvertImageToPDF(buffer) '或者直接 Dim Attachment() As Byte = ConvertImageToPDF(path,name);注意取消上面这一段 '输出到前端 Response.Clear() Response.ContentType = "application/octet-stream" Response.ContentType = "application/pdf" Response.AddHeader("Content-Length", Attachment.GetLength(0).ToString) Response.AddHeader("Content-Disposition", "inline;filename=imageTest.pdf") Response.Filter.Close() 'Close the filter Response.BinaryWrite(Attachment) Response.Flush() Response.End() End Sub
试试其它关键字
图片转pdf
同语言下
.
根据User Agent来判定操作系统与浏览器类型
.
将PPT内容导出为JPG图片
.
Java屏幕截取
.
发送邮件组件
.
子窗体在父窗体指定的控件中显示
.
取文件的大小
.
从某个目录中筛选文件
.
VB脚本调用exe应用程序并传递参数
.
图像格式转换工具
.
洗牌算法
可能有用的
.
实现测量程序运行时间及cpu使用时间
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
雷霆
贡献的其它代码
(
16
)
.
比较两个图片的相似度
.
a表记录不在b 表中的内容
.
按照某个键值对二维数组进行排序
.
使用Linq进行包含IN的子查询并按指定字段分组统计
.
jQuery实现MD5加密
.
统计字母出现的次数
.
三角形列表符号
.
转成大写金额
.
一个简单的HTTP服务器
.
检查一个元素是否在数组中
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3