C# 这个C代码是做什么的&;转换成PHP?
我想把这段代码转换成PHP,它是一个隐藏PDF文件层的函数,但我不明白它是如何实现的C# 这个C代码是做什么的&;转换成PHP?,c#,php,pdf,C#,Php,Pdf,我想把这段代码转换成PHP,它是一个隐藏PDF文件层的函数,但我不明白它是如何实现的 public static void HidePDFLayers(string pdf_file, string output_file) { PdfReader reader = new PdfReader(pdf_file); PdfStamper stamp = new PdfStamper(reader, new FileStream(output
public static void HidePDFLayers(string pdf_file, string output_file)
{
PdfReader reader = new PdfReader(pdf_file);
PdfStamper stamp = new PdfStamper(reader, new FileStream(output_file, FileMode.Create));
pdf_num_pages = reader.NumberOfPages;
Dictionary<string, PdfLayer> layers = stamp.GetPdfLayers();
int count = 0;
foreach(KeyValuePair<string, PdfLayer> entry in layers )
{
PdfLayer layer = (PdfLayer)entry.Value;
layer.On = false;
count++;
}
stamp.Close();
Console.WriteLine("[*] Number Of Layers Hidden: " + count);
PDFToImages(output_file);
}
publicstaticvoidhidepdfayers(字符串pdf\u文件、字符串输出\u文件)
{
PdfReader reader=新PdfReader(pdf_文件);
PdfStamper stamp=新PdfStamper(读取器,新文件流(output_file,FileMode.Create));
pdf_num_pages=reader.NumberOfPages;
字典层=stamp.GetPdfLayers();
整数计数=0;
foreach(层中的KeyValuePair条目)
{
PdfLayer层=(PdfLayer)entry.Value;
layer.On=false;
计数++;
}
stamp.Close();
Console.WriteLine(“[*]隐藏层数:”+count);
PDFToImages(输出文件);
}
这是否会创建一个所有层都隐藏的新PDF(哪些层,如果它们都隐藏了,那么PDF上就不会有任何内容?)
我如何使用PHP实现同样的功能?正如您在这里看到的文档所说,它在PDF文档中获取层。因此,我认为它可以在一个PDF文档中获得所有层
然后它循环遍历所有层,将它们的可见性设置为false,从而隐藏它们
附言:你对缺点说得越多,我想你会得到越多;) 你有PHP版本中的
PdfReader
可供使用吗?我觉得这很像iTextSharp。甚至有一个PHP端口吗?你会自己写PDF操作代码吗?谢谢-2的家伙,这是一个我真的需要帮助的问题,很抱歉我没有很好地阅读C#,但这就是为什么我要问这个问题。如果我知道上述代码的实际用途,我可以很好地直接编写PHP。这仍然是我的问题。谢谢。这段代码使用的是一个PDF库,它提供了您需要的功能。所有逻辑都包含在PdfReader和PdfStamper对象中。除非在PHP中找到等效的PDF库,否则无法将其转换为PHP。谢谢。我自己不在乎有什么缺点,这只是一个原则,这里的人是如此精英化,他们会因为问初学者的问题而给别人一个否定的评价。我们都必须从某个地方开始。@Alasdair-你必须明白你在这里提出的问题有多糟糕。你不了解代码有什么不好?他们使用的是语法还是库?同样,这个答案并不能解释如何将代码转换为PHP。至于成为精英主义者,你可能是对的。这个问题很糟糕,我同意,但那是因为我一生中从未编写过C#代码。我有这段代码,它不工作,必须重写它,我所能做的就是用PHP重写它,因为这就是我所知道的。幸运的是,我可以理解C#的大部分功能,因为它离PHP不远,但是这个函数我不理解。这里的每个人显然都认为我是一个非常糟糕的C#开发人员,但我根本不是一个C#开发人员,只是一个处于困境中的PHP开发人员,有一些代码我不理解,必须修复,因为编写代码的人没有正确地完成。如果我很粗鲁,我很抱歉,我已经有一个糟糕的一天试图得到这个底部,并张贴在StackOverFlow是我的最后一根稻草。现在我知道它使用iTextSharp并禁用所有层。现在我的计划是剥离所有这些无法移植到函数中的代码,我可以编译为独立的可执行文件并从PHP执行。你知道如何用Mono编译C#项目吗?