以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]PDF问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=67196) |
-- 作者:pcxjxjhkw -- 发布时间:2015/4/20 10:22:00 -- [求助]PDF问题 扫描的图片是A4大小,将图片转成PDF文件时,如何实现:让图片铺满A4页面。 |
-- 作者:Bin -- 发布时间:2015/4/20 10:23:00 -- 已经是A4大小了,不就应该铺满了A4么? |
-- 作者:Bin -- 发布时间:2015/4/20 10:25:00 -- 设置一下扫描仪看看,会比较方便. |
-- 作者:pcxjxjhkw -- 发布时间:2015/4/20 10:41:00 -- 大家帮忙看一下下面的代码,无法达到想要的效果,谢谢。 Dim lvw As WinForm.ListView = e.Form.Controls("图片略缩图") Dim pic As WinForm.PictureBox = e.Form.Controls("图片预览框") If lvw.Current IsNot Nothing Then Dim doc As New PrintDoc \'定义一个报表对象 Doc.PageSetting.PaperKind = 12 \'\'A4 Doc.PageSetting.LeftMargin = 0.5 Doc.PageSetting.BottomMargin = 0.5 Doc.PageSetting.LeftMargin = 0.5 Doc.PageSetting.TopMargin = 0.5 For Each vr As WinForm.ListViewRow In lvw.Rows \'\'遍历所有图片文件 If FileSys.FileExists(vr.Name) = True Then \'\'如果该文件存在 Dim rm As New prt.RenderImage \'定义一个图片对象 rm.Image = GetImage(vr.Name) \'设置图片来源 Dim pwidth = Doc.PageSetting.Width.value - Doc.PageSetting.LeftMargin.Value - Doc.PageSetting.RightMargin.Value If rm.Image.Width / 96 * 25.4 > pwidth Then \' rm.Width = "Parent.Width" End If rm.Width = "Parent.Width" \'宽度等于页面宽度 rm.Height = "Auto" \'高度由图片大小自动决定 \' rm.Style.ImageAlign.StretchHorz = False \'禁止图片水平拉伸 rm.Style.ImageAlign.AlignHorz = prt.ImageAlignHorzEnum.Center \'图片水平居中 doc.Body.Children.Add(rm) \'将图片对象加入报表 rm.BreakBefore = prt.BreakEnum.Page \'打印前换页 End If Next Dim dlg As New SaveFileDialog \'定义一个新的SaveFileDialog dlg.Filter= "PDF文件|*.pdf" \'设置筛选器 dlg.Title = "导出为PDF" dlg.FileName = CurrentTable.Current("文件名") & ".pdf" If dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮 Doc.SavePDF(dlg.FileName) If MessageBox.Show("图片已成功导出为PDF文件,现在是否打开?","确认",MessageBoxButtons.YesNo,MessageBoxIcon.Question) = DialogResult.Yes Then Dim Proc As New Process \'定义一个新的Process Proc.File = dlg.FileName \'指定要打开的文件 Proc.Start() End If End If End If
[此贴子已经被作者于2015/4/20 10:41:22编辑过]
|
-- 作者:Bin -- 发布时间:2015/4/20 11:00:00 -- 看3楼. |