首页 > 解决方案 > 修剪 Base64 字符串以仅显示 C# 中的前 X 个页面

问题描述

不知道这是否可能,但我有一个大约 50 页长的 Base64 字符串。为了显示这一点,我在控制器中将其转换为 PDF,然后在前端使用 PDF 将其显示为 PDF。

我想知道是否有办法在 C# 中修剪 Base64 字符串以仅显示前 15 页?

标签: c#.net

解决方案


这样做可能会使 Base64 字符串或底层二进制数据不可读:

  • 您只能每 4 个字符精确地切割 Base64,它代表原始二进制文件的 3 个字节。其他任何地方都使字符串在最后一个字符上不可解码(大多数解码器会完全折叠,因为它们假定 Base64 字符串已损坏)。
  • 并且取决于放入 Base64 的二进制文件所代表的 wich(文件)格式,部分二进制文件很可能无法被解释。

Base64 是专门为跨媒体获取随机二进制数据而发明的,它只可靠地支持 ASCII 字符。例如,电子邮件和 HTML 内联。它基本上是 6/8 编码。

你说这个数据代表 PDF。老实说,大文件一开始就存储在 Base64 中,这确实很奇怪。但是 PDF 确实对此有支持:https ://helpx.adobe.com/premiere-pro/using/interlacing-field-order.html

假设这些是用于在线分发的,那么这些 PDF 很有可能确实启用了隔行扫描。所以它们可以被部分读取——文本在前面,然后隔行扫描的图像在二进制文件的其余部分“涂抹”。

但通常最好只制作预览图像,将其存储在数据库中并保留它。


推荐阅读