0
美好的一天,Crystal報告徽標圖像並未全部顯示在報告中
我有一個控制檯應用程序,它有一個包含圖像的水晶報告。我將使用exporttostream運行報告並將導出的報告存儲在sqlserver 2012中的varbinary字段中。然後,我將選擇這些報告的批處理,並使用itextsharp將它們連接成1個pdf文件。報告上的徽標顯示在一些頁面上並非全部。任何想法,爲什麼這可能會發生。運行此應用程序時,我也使用並行處理(Parallel.For)。 任何想法,爲什麼這可能會發生?或者在報告中嵌入此圖像以便始終顯示的最佳方式是什麼? 我試着運行相同的代碼,但只有1個並行進程(即將按順序執行),並且所有圖像都出現在pdf中。爲什麼並列處理不能正確渲染圖像? 在此先感謝
******編輯****** 代碼的PDF文件拼接
Document document = null;
for (int i=1; i <= numbatches;i++)
{
String printer_file_prefix = dll.Print.getPrinterFilePrefix(connectionString, bill_type_id.ToString());
batchnumberpadded = i.ToString();
batchnumberpadded = batchnumberpadded.PadLeft(3, '0');
printerfilename = printer_file_prefix + oneup_number + batch_id + batchnumberpadded;//eg D_G123456CUST001
BatchPrintFilePath = Globals.printer_filelocation_prefix + printerfilename + ".pdf";
document = new Document(PageSize.A4);
PdfCopy copy = new PdfCopy(document, new FileStream(BatchPrintFilePath, FileMode.Create, FileAccess.ReadWrite, FileShare.ReadWrite));
document.Open();
using (SqlConnection sconn = new SqlConnection(connectionString))
{
using (SqlCommand cmd = new SqlCommand("spGetPrinterFiles", sconn))
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@batch_num", i);
cmd.Parameters.AddWithValue("@maximumRows",Globals.print_batch);
cmd.Parameters.AddWithValue("@archive_process_instance_no", archive_process_instance_no);
cmd.Parameters.AddWithValue("@batch_id", @batch_id);
sconn.Open();
using (SqlDataReader dr = cmd.ExecuteReader(System.Data.CommandBehavior.Default))
{
while (dr.Read())
{
copy.AddDocument(new PdfReader((byte[])dr.GetValue(0)));
}
dr.Close();
sconn.Close();
}
sconn.Close();
}
}
if (copy != null)
copy.Close();
if (document.IsOpen())
document.Close();
}//end for
請澄清:你如何連接文件?有很多非常糟糕的例子使用'Document'和'PdfWriter'(這顯然是錯誤的方式),而不是使用'PdfCopy'或'PdfSmartCopy'(這是正確的方式)。如果你不提供更多的數據,這個問題是無法回答的。 –
對不起,我編輯了我的問題。我不知道什麼可能導致問題,所以不知道代碼的哪些部分將幫助 – CoDeGiRl
從刪除'copy.Close()'開始。如果你想保留那條線,在關閉'PdfCopy'實例之前關閉'Document' *。現在我們可以看到你的代碼,但我們仍然不知道什麼是錯的。你在談論的標誌在哪裏?由於iText之外的某些原因,它們可能不在任何地方。有沒有辦法可以提供[SSCCE](http://sscce.org)? –