winform下word文件与byte[]互转

    要在数据库中存储word文件免不了要在word文件和二进制数据之间做转换,于是我又手痒写类了。虽然只写了word文件的转换,其实其他各种文件都可以类比下。

using System;
using System.Data;
using System.Windows.Forms;
using System.IO;

public class WordToByte
{
    /// <summary>
    /// 寻找Word文件并获得其二进制文件流
    /// </summary>
    /// <returns></returns>
    static public byte[] GetByte()
    {
        OpenFileDialog openDialog = new OpenFileDialog();
        openDialog.Filter = "word文件(*.DOC;*.DOCX)|*.DOC;*.DOCX|所有文件(*.*)|*.*";
        if (openDialog.ShowDialog() != DialogResult.OK)
        {
            return null;
        }

        FileStream fs = new FileStream(openDialog.FileName, FileMode.Open);
        fs.Position = 0;
        byte[] word = new byte[fs.Length];
        fs.Read(word, 0, (int)fs.Length);
        fs.Close();
        return word;
    }

    /// <summary>
    /// 用指定二进制数据流生成Word文件,文件名不需要带后缀
    /// </summary>
    /// <param name="data"></param>
    /// <param name="文件名"></param>
    /// <param name="打开word文件"></param>
    static public void GetWordFile(byte[] data, string 文件名, bool 打开Word文件)
    {
        SaveFileDialog saveDialog = new SaveFileDialog();
        saveDialog.DefaultExt = "doc";
        saveDialog.Filter = "Word文件|*.doc";
        saveDialog.FileName = 文件名;
        if (saveDialog.ShowDialog() != DialogResult.OK)
        {
            return;
        }

        FileStream fs = new FileStream(saveDialog.FileName, FileMode.CreateNew);
        BinaryWriter bw = new BinaryWriter(fs);
        bw.Write(data, 0, data.Length);
        bw.Close();
        fs.Close();
        if (打开Word文件 && File.Exists(saveDialog.FileName))
        {
            System.Diagnostics.Process.Start(saveDialog.FileName); //打开Word文件
        }
    }

    /// <summary>
    /// 用指定二进制数据流生成Word文件到指定路径(如“D:\”),文件名需要带后缀
    /// </summary>
    /// <param name="data"></param>
    /// <param name="文件名"></param>
    /// <param name="Path"></param>
    /// <param name="打开word文件"></param>
    static public void GetWordFile(byte[] data, string 文件名, string Path, bool 打开Word文件)
    {
        string Directory = Path + 文件名;

        FileStream fs = new FileStream(Directory, FileMode.CreateNew);
        BinaryWriter bw = new BinaryWriter(fs);
        bw.Write(data, 0, data.Length);
        bw.Close();
        fs.Close();
        if (打开Word文件 && File.Exists(Directory))
        {
            System.Diagnostics.Process.Start(Directory); //打开Word文件
        }
    }
}
既然是unicode编码,有时候就爱用中文命名。不适应的请见谅。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在WinForm中转换PDF到Word可以通过使用第三方库或API来实现。以下是一种可能的实现方式: 1. 首先,你可以寻找适合的第三方库或API,比如iTextSharp、Syncfusion、Spire.PDF等。这些库提供了丰富的功能和方法来处理PDF文件。 2. 下载和安装选定的库或API,并将其添加到你的WinForm项目中。这通常涉及添加引用或安装包。 3. 在WinForm中创建一个用户界面,包括一个用于选择PDF文件文件选择框和一个转换按钮。 4. 实现转换功能,在转换按钮的点击事件中添加相应的代码。 5. 使用选定的库或API加载所选择的PDF文件。代码类似于以下示例: ``` PdfDocument inputDoc = new PdfDocument(); inputDoc.LoadFromFile(@"path_to_input_pdf"); ``` 6. 调用转换方法将PDF文件转换为Word文件。代码类似于以下示例: ``` inputDoc.SaveToFile(@"path_to_output_word", FileFormat.DOC); ``` 7. 显示转换成功的提示消息或将转换后的Word文件打开。 这只是一种实现方式的简单概述,具体实现步骤和代码可能会因所选择的库或API而有所不同。请根据所选择的库或API的文档和示例进行实施,并确保在使用第三方库或API时遵循其许可和使用条款。 ### 回答2: WinForm是微软的一种用户界面开发工具,它可以用来开发桌面应用程序。将PDF转换为Word是一种常见的需求,通常是为了编辑或修改PDF文档中的内容。 为了实现将PDF转换为Word,可以使用一些第三方库或工具。其中一个常用的库是iTextSharp,它是一个开源的PDF库,可以用来读取和处理PDF文档。通过使用iTextSharp库,可以将PDF中的内容提取出来,然后再将提取出的内容写入Word文档中。 首先,需要在WinForm应用程序中引入iTextSharp库,并进行相应的配置。然后,通过编写代码,可以打开要转换的PDF文件,提取其中的内容,并创建一个新的Word文档。在创建Word文档时,可以按照需要进行格式化和排版,以确保转换后的Word文档与原始PDF文档尽可能相似。 需要注意的是,PDF和Word是两种完全不同的文档格式,它们的结构和特性也不相同。因此,在进行转换时,可能会存在一些限制和难题,例如特殊的布局、图表和样式等。在实际应用中,可能需要根据具体需求来选择合适的转换方法和工具,以确保转换结果的准确性和质量。 总的来说,通过在WinForm应用程序中使用iTextSharp库,可以实现将PDF转换为Word的功能。但是,在实际应用中,可能需要根据具体情况进行调整和改进,以满足特定的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值