工具/材料:Microsoft Office Word2016版,PDF文件。
1、首选在桌面上,选中PDF文件,双击打开。
2、继续在Microsoft Office Word窗口上,点击顶部的“阅读”分页栏。
3、再者在Microsoft Office Word窗口上,点击顶部的“双页”图标。
4、继续在Microsoft Office Word窗口上,PDF文件内容成功分页显示。
5、再者在Microsoft Office Word界面窗口上,点击左上角“文件”图标里的“打印”选项。
6、继续在Microsoft Office Word界面窗口上,选择打印方式为“一张多页”和“每张页数”为2张。
7、最后在Microsoft Office Word窗口上,点击“打印”按钮即可。
public void writeLog(string sMessage){
//FileStream fs = new FileStream(Server.MapPath("pagetohtml.htm"), FileMode.Append)
try
{
StreamWriter swriter = File.CreateText(Server.MapPath("pagetohtml.htm"))
swriter.WriteLine(sMessage)
swriter.Close()
}
catch
{ }
}
private System.Drawing.Bitmap bitmap
private string url
private int w = 760, h = 900
public void setBitmap()
{
using (WebBrowser wb = new WebBrowser())
{
wb.Width = w
wb.Height = h
wb.ScrollBarsEnabled = false
wb.Navigate(url)
//确保页面被解析完全
while (wb.ReadyState != WebBrowserReadyState.Complete)
{
System.Windows.Forms.Application.DoEvents()
}
bitmap = new System.Drawing.Bitmap(w, h)
wb.DrawToBitmap(bitmap, new System.Drawing.Rectangle(0, 0, w, h))
wb.Dispose()
}
}
private void CreatPdf()
{
Document doc = new Document(PageSize.A4, 9, 18, 36, 36)//左右上下
MemoryStream ms = new MemoryStream()
try
{
PdfWriter writer = PdfWriter.GetInstance(doc, ms)
writer.CloseStream = false
doc.Open()
url = Server.MapPath("pagetohtml.htm")
Thread thread = new Thread(new ThreadStart(setBitmap))
thread.SetApartmentState(ApartmentState.STA)
thread.Start()
while (thread.IsAlive)
Thread.Sleep(100)
bitmap.Save(Server.MapPath("pagetohtml.bmp"))
iTextSharp.text.Image img = iTextSharp.text.Image.GetInstance(bitmap, System.Drawing.Imaging.ImageFormat.Bmp)
img.ScalePercent(75)//560 630
doc.Add(img)
}
catch (Exception err)
{
throw new Exception(err.Message)
}
finally
{
doc.Close()
using (FileStream fs = new FileStream(Server.MapPath("pagetohtml.pdf"), FileMode.Create))
{
ms.Position = 0
byte[] bit = new byte[ms.Length]
ms.Read(bit, 0, (int)ms.Length)
fs.Write(bit, 0, bit.Length)
}
ViewPdf(ms)
}
}
private void ViewPdf(Stream fs)
{
Response.Clear()
//中文名的话
//Response.AppendHeader("Content-Disposition", "attachmentfilename=" +
// HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8) + "charset=GB2312")
Response.AddHeader("Content-Disposition", "attachmentFileName=pagetohtml.pdf")
Response.AddHeader("Content-Length", fs.Length.ToString())
Response.ContentType = "application/pdf"
long fileLength = fs.Length
int size = 10240
byte[] readData = new byte[size]
if (size > fileLength)
size = Convert.ToInt32(fileLength)
long fPos = 0
bool isEnd = false
while (!isEnd)
{
if ((fPos + size) >= fileLength)
{
size = Convert.ToInt32(fileLength - fPos)
isEnd = true
}
readData = new byte[size]
fs.Position = fPos
fs.Read(readData, 0, size)
Response.BinaryWrite(readData)
Response.OutputStream.Flush()
fPos += size
}
fs.Close()
Response.OutputStream.Close()
Response.End()
Response.Close()
}更多0
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)