我必须将多个1页pdf合并为一个pdf.我正在使用iTextSHarp 5.5.5.0来实现这一目标,但是当我合并超过900-1000 pdf时,我得到一个内存不足异常.我注意到,即使我释放我的阅读器并关闭它,内存永远不会被正确清理(进程使用的内存量永远不会减少)所以我想知道我可能做错了什么.这是我的代码:
using (MemoryStream msOutput = new MemoryStream())
{
Document doc = new Document();
PdfSmartCopy pCopy = new PdfSmartCopy(doc, msOutput);
doc.Open();
foreach (Tuple<string, int> file in filesList)
{
PdfReader pdfFile = new PdfReader(file.Item1);
for (int j = 0; j < file.Item2; j++)
for (int i = 1; i < pdfFile.NumberOfPages + 1; i++)//in this case it's always 1.
pCopy.AddPage(pCopy.GetImportedPage(pdfFile, i));
pCopy.FreeReader(pdfFile);
pdfFile.Close();
File.Delete(file.Item1);
}
pCopy.Close();
doc.Close();
byte[] content = msOutput.ToArray();
using (FileStream fs = File.Create(Out))
{
fs.Write(content, 0, content.Length); …Run Code Online (Sandbox Code Playgroud) Hy我有一个foreach循环,它将数组键添加到另一个数组.我想知道它是否可以增加(使用++)和uninitialize元素.目前我的代码是:
foreach($SociBdP as $id=>$socio)
{
if(!isset($provenienza[$option_name]))
$provenienza[$option_name]=0;
$provenienza[$option_name]++;
}
Run Code Online (Sandbox Code Playgroud)
我想知道它是否安全
foreach($SociBdP as $id=>$socio)
{
$provenienza[$option_name]++;
}
Run Code Online (Sandbox Code Playgroud)
或者如果存在风险(如在c ++中),则数组的默认值不为0
angularjs ×1
arrays ×1
c# ×1
compression ×1
http ×1
itextsharp ×1
javascript ×1
memory ×1
memory-leaks ×1
pdf ×1
php ×1