B2023-024 added a method to all us to remove a section PDF from the pdf print cache
This commit is contained in:
parent
eb48009f5c
commit
b1a6f05bd2
@ -115,6 +115,25 @@ namespace VEPROMS.CSLA.Library
|
|||||||
}
|
}
|
||||||
public partial class PdfInfo
|
public partial class PdfInfo
|
||||||
{
|
{
|
||||||
|
// B2023-024 PROMS was using old cached PDF data when printing Word sections.
|
||||||
|
// Added this method that can be called to clear the PDF print cache for a specified section.
|
||||||
|
public static void RemovePDFFromCache(ItemInfo sect)
|
||||||
|
{
|
||||||
|
DocStyle myDocStyle = sect.ActiveSection.MyDocStyle;
|
||||||
|
SectionConfig sc = sect.ActiveSection.MyConfig as SectionConfig;
|
||||||
|
|
||||||
|
int ss = sect.MyDocVersion.DocVersionConfig.SelectedSlave;
|
||||||
|
|
||||||
|
if (sc != null && sc.Section_WordMargin == "Y")
|
||||||
|
{
|
||||||
|
RemoveFromCachedByPrimaryKey(sect.MyContent.MyEntry.DocID, ss * 10 + MSWordToPDF.DebugStatus, 0, 0, 0, 0);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
RemoveFromCachedByPrimaryKey(sect.MyContent.MyEntry.DocID, ss * 10 + MSWordToPDF.DebugStatus, (int)myDocStyle.Layout.TopMargin,
|
||||||
|
(int)myDocStyle.Layout.PageLength, (int)myDocStyle.Layout.LeftMargin, (int)myDocStyle.Layout.PageWidth);
|
||||||
|
}
|
||||||
|
}
|
||||||
public static PdfInfo Get(ItemInfo sect, bool ovrride)
|
public static PdfInfo Get(ItemInfo sect, bool ovrride)
|
||||||
{
|
{
|
||||||
int count = 0;
|
int count = 0;
|
||||||
|
@ -71,6 +71,19 @@ namespace VEPROMS.CSLA.Library
|
|||||||
if (_CacheByPrimaryKey.ContainsKey(key)) return _CacheByPrimaryKey[key][0];
|
if (_CacheByPrimaryKey.ContainsKey(key)) return _CacheByPrimaryKey[key][0];
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
// B2023-024 PROMS was using old cached PDF data when printing Word sections.
|
||||||
|
// Added this method to clear the PDF print cache for a specified section.
|
||||||
|
// This is called from RemovePDFFromCache() in PDFExt.cs
|
||||||
|
protected static void RemoveFromCachedByPrimaryKey(int docID, int debugStatus, int topRow, int pageLength, int leftMargin, int pageWidth)
|
||||||
|
{
|
||||||
|
ConvertListToDictionary();
|
||||||
|
string key = docID.ToString() + "_" + debugStatus.ToString() + "_" + topRow.ToString() + "_" + pageLength.ToString() + "_" + leftMargin.ToString() + "_" + pageWidth.ToString();
|
||||||
|
if (_CacheByPrimaryKey.ContainsKey(key))
|
||||||
|
{
|
||||||
|
_CacheByPrimaryKey.Remove(key);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
#endregion
|
#endregion
|
||||||
#region Business Methods
|
#region Business Methods
|
||||||
private string _ErrorMessage = string.Empty;
|
private string _ErrorMessage = string.Empty;
|
||||||
|
@ -831,6 +831,13 @@ namespace Volian.Print.Library
|
|||||||
int profileDepth = ProfileTimer.Push(">>>> PrintProcedureOrFoldout");
|
int profileDepth = ProfileTimer.Push(">>>> PrintProcedureOrFoldout");
|
||||||
Rtf2Pdf.TextAtCounter = 0;
|
Rtf2Pdf.TextAtCounter = 0;
|
||||||
bool doingFoldout = myFoldoutSection != null;
|
bool doingFoldout = myFoldoutSection != null;
|
||||||
|
// B2023-024 PROMS was using old cached PDF data when printing Word sections.
|
||||||
|
if (doingFoldout)
|
||||||
|
{
|
||||||
|
PdfInfo.RemovePDFFromCache((ItemInfo) myFoldoutSection); // remove cached PDF info to force getting of new data
|
||||||
|
if (File.Exists(outputFileName))
|
||||||
|
File.Delete(outputFileName); // delete the temporary FOLDOUT file
|
||||||
|
}
|
||||||
// The following line accounts for 16bit OverrideLeftMargin when the 'Absolute' attribute is used in the genmac.
|
// The following line accounts for 16bit OverrideLeftMargin when the 'Absolute' attribute is used in the genmac.
|
||||||
// We don't want to use the OverrideLeftMargin when 'Absolute' is used in the genmac.
|
// We don't want to use the OverrideLeftMargin when 'Absolute' is used in the genmac.
|
||||||
// It's set here because the Volian.Svg.Library cannot call back to Volian.Print.Library to get this value.
|
// It's set here because the Volian.Svg.Library cannot call back to Volian.Print.Library to get this value.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user