c# - 将base64编码转换为pdf

标签 c#

我尝试了多种解决方案,但每次都出现无法打开 pdf 的错误。这是经过编辑的代码,其中包含需要转换为 .pdf 的实际数据流。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Globalization;
using System.Threading;

namespace ConsoleApplication3
{
class Program
{
    static void Main(string[] args)
    {
        try
        {
            string base64BinaryStr = "Q29tcGFueSBTZXJ2aWNpbmcNCjEuCVRvb2xiYXIgQ29tcGFueSBTZXJ2aWNpbmcgU2VsZWN0IEFuIEFjY291bnQNCjIuCVRvb2xiYXJfQ29tcGFueSBTZXJ2aWNpbmcgRG91YmxlIENsaWNrIG9uIGFuIEFjY291bnQNCjMuCVRvb2xiYXIgQ29tcGFueSBTZXJ2aWNpbmdfRW50ZXIgYWNjb3VudCBudW1iZXIgaW4gdGhlIE51bWJlciBmaWVsZCBvZiB0aGUgQWNvdW50IFNlYXJjaCBTZWN0aW9uDQo0LglUb29sYmFyIENvbXBhbnkgU2VydmljaW5nX1JldHVybg0KNS4JVG9vbGJhciBDb21wYW55IFNlcnZpY2luZ19DbG9zZQ0KNi4JVG9vbGJhciBDb21wYW55IFNlcnZpY2luZ19NZW1vc19DbGVhciBCdXR0b24NCjcuCVRvb2xiYXJfQ29tcGFueSBTZXJ2aWNpbmdfTWVtb3NfQWRkIEJ1dHRvbg0KOC4JVG9vbGJhcl9Db21wYW55IFNlcnZpY2luZ19NZW1vc19BbHQtQSBUbyBBZGQgQSBNZW1vDQo5LglUb29sYmFyX0NvbXBhbnkgU2VydmljaW5nX01lbW9zX0NoYW5nZQ0KMTAuCVRvb2xiYXJfQ29tcGFueSBTZXJ2aWNpbmdfTWVtb3NfRGVsZXRlIEJ1dHRvbg0KMTEuCVRvb2xiYXJfQ29tcGFueSBTZXJ2aWNpbmdfTWVtb3NfUmVmcmVzaA0KMTIuCVRvb2xiYXJfQ29tcGFueSBTZXJ2aWNpbmdfTWVtb3NfQ2xvc2UgQnV0dG9uDQoxMy4JVG9vbGJhcl9Db21wYW55IFNlcnZpY2luZ19TcGVuZGluZyBDb250cm9sX0VsaXRlDQoxNC4JVG9vbGJhcl9Db21wYW55IFNlcnZpY2luZ19TcGVuZGluZyBDb250cm9sX0Rlc2NyaXB0aW9uIGJ1dHRvbg0KMTUuCVRvb2xiYXJfQ29tcGFueSBTZXJ2aWNpbmdfU3BlbmRpbmcgQ29udHJvbF9EZXNjcmlwdGlvbiBidXR0b25fU2VsZWN0IFNwZW5kaW5nIENvbnRyb2wNCjE2LglUb29sYmFyX0NvbXBhbnkgU2VydmljaW5nX1NwZW5kaW5nIENvbnRyb2xfRGVzY3JpcHRpb24gYnV0dG9uX1NwZW5kaW5nIENvbnRyb2wgTGluayB0byBWTA0KMTcuCVRvb2xiYXJfQ29tcGFueSBTZXJ2aWNpbmdfU3BlbmRpbmcgQ29udHJvbF9EZXNjcmlwdGlvbl9DbG9zZSBidXR0b24NCjE4LglUb29sYmFyX0NvbXBhbnkgU2VydmljaW5nX1NwZW5kaW5nIENvbnRyb2xfU2VsZWN0IEFsbF9WaWV3IFRyYW5zYWN0aW9ucw0KMTkuCVRvb2xiYXJfQ29tcGFueSBTZXJ2aWNpbmdfU3BlbmRpbmcgQ29udHJvbF9TcGVuZGluZyBDb250cm9sIExpbmsgdG8gVkwNCjIwLglUb29sYmFyX0NvbXBhbnkgU2VydmljaW5nX1NwZW5kaW5nIENvbnRyb2xfQ2FuY2VsIGJ1dHRvbg0K";

            byte[] sPDFDecoded = Convert.FromBase64String(base64BinaryStr);




            BinaryWriter writer = new BinaryWriter(File.Open(@"c:\Users\u316383\Documents\pdf9.pdf", FileMode.CreateNew));
            writer.Write(sPDFDecoded);

            string s = Encoding.UTF8.GetString(sPDFDecoded);
        }
        catch (Exception e)
        {
            Console.WriteLine(e.ToString());
            Console.ReadLine();
        }
    }
}

最佳答案

输入了错误的字符串。这很简单,对于任何其他引用,我的代码是:

byte[] sPDFDecoded = Convert.FromBase64String(base64BinaryStr);
    
File.WriteAllBytes(@"c:\Users\u316383\Documents\pdf8.pdf", sPDFDecoded);

谢谢大家。

关于c# - 将base64编码转换为pdf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24808014/

相关文章:

c# - 将简单的 lambda 表达式或局部函数分配给委托(delegate)的性能

c# - 格式化字符串电子邮件到电子邮件链接

c# - 为 JSON 构造 C# 对象

c# - 使用 ReliableSqlConnection 和 Azure 的工作示例

c# - 在监 window 口中评估动态属性

c# - 将强类型列表添加到数据库

c# - 为什么这个字符串 ("ʿAbdul-Baha' "^^mso :text@de) doesn't start with "?

c# - Azure Web 应用中的 ApplicationHost.xdt

c# - 在 MVC 中同时将数据写入两个表时遇到问题

c# - 如何创建用于表达式构建的静态 lambda?