CR / LF编码为PDF文件

时间:2015-08-21 15:48:09

标签: c# encoding newline

我遇到了一个我以前见过的问题。问题很简单,我需要向一个方法发送两个不同的字符串,以验证字符串是否相同。

其中一个字符串看起来像这样

样本1

JVBERi0xLjQNCiW1tbW1DQoxIDAgb2JqDQo8PC9UeXBlL0NhdGFsb2cvUGFnZXMgMiAwIFIvTGFu
ZyhkYS1ESykgL1N0cnVjdFRyZWVSb290IDU3IDAgUi9NYXJrSW5mbzw8L01hcmtlZCB0cnVlPj4v

第二个看起来像

示例2 ZyhkYS1ESykgL1N0cnVjdFRyZWVSb290IDU3IDAgUi9NYXJrSW5mbzw8L01hcmtlZCB0cnVlPj4vZyhkYS1ESykgL1N0cnVjdFRyZWVSb290IDU3IDAgUi9NYXJrSW5mbzw8L01hcmtlZCB0cnVlPj4v

实际字符串是压缩到base64的PDF文档(这只是其中的一部分)

我尝试将样本1带入记事本++并说出显示所有特殊字符,它在每行末尾显示CRLF。

现在我需要让样本2看起来像样本1,所以我需要将文件读入相同的编码,这可能吗?

所以总结一下这就是我想做的事情

EDIT / ADD:

我想要的是那个 1.拿一个pdf 2.将其转换为使用cr / lf编码的base64编码 3.在另一个库中的验证方法中,需要将其验证为此格式。

1 个答案:

答案 0 :(得分:0)

好吧,我没有找到任何创建CR / LF分割的好方法

        byte[] bytes = System.IO.File.ReadAllBytes(@"C:\Testdata\SSVALID.pdf");

        string temp_inBase64 = Convert.ToBase64String(bytes);

        string returnString = "";

        int maxLenght = 76;

        int counts = temp_inBase64.Length / maxLenght;

        for (int i = 0; i < counts; i++)
        {
            returnString += temp_inBase64.Substring((i * 76), 76);
            returnString += "\r\n";
        }

        returnString += temp_inBase64.Substring(76 * counts, temp_inBase64.Length - (76 * counts));