Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 这个C代码是做什么的&;转换成PHP?_C#_Php_Pdf - Fatal编程技术网

C# 这个C代码是做什么的&;转换成PHP?

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

我想把这段代码转换成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_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#项目吗?