示例#1
0
        internal void EndSave(TPdfStream DataStream, TXRefSection XRef, TPdfProperties Properties, TPdfSignature Signature)
        {
            FinishPage(DataStream, XRef);

            TPdfToken P = TPdfToken.None;

            switch (PageLayout)
            {
            case TPageLayout.Outlines: P = TPdfToken.UseOutlinesName; break;

            case TPageLayout.Thumbs: P = TPdfToken.UseThumbsName; break;

            case TPageLayout.FullScreen: P = TPdfToken.FullScreenName; break;
            }

            int OutlinesId = -1;

            if (Bookmarks.Count > 0)
            {
                OutlinesId = XRef.GetNewObject(DataStream);
            }

            TDocumentCatalogRecord.SaveToStream(DataStream, XRef, CatalogId, PageTree.Id, OutlinesId,
                                                AcroForm.GetId(DataStream, XRef), Perms.GetId(DataStream, XRef, AcroForm.SignatureFieldId(DataStream, XRef)), P);
            PageTree.SaveToStream(DataStream, XRef, AcroForm);
            SaveBookmarks(DataStream, XRef, OutlinesId);

            Info.SaveToStream(DataStream, XRef, Properties);

            Perms.SaveToStream(DataStream, XRef, AcroForm.SignatureFieldId(DataStream, XRef));

            AcroForm.SaveToStream(DataStream, XRef, PageTree.GetSigPage(Signature));             //We save it last because it needs to keep everything after it in memory for signing it.
        }
示例#2
0
 public TPdfTransparency(int aGStateId, int aAlpha, TPdfToken aOperator, string aSMask, string aBBox)
 {
     GStateId = aGStateId;
     Alpha    = aAlpha;
     Operator = aOperator;
     SMask    = aSMask;
     BBox     = aBBox;
 }
示例#3
0
        internal TPdfTransparency GetTransparency(int Alpha, TPdfToken aOperator, string aSMask, string aBBox)
        {
            TPdfTransparency SearchTransparency = new TPdfTransparency(GStates.Count, Alpha, aOperator, aSMask, aBBox);
            int Index = GStates.BinarySearch(0, GStates.Count, SearchTransparency, null);  //Only BinarySearch compatible with CF.

            if (Index < 0)
                GStates.Insert(~Index, SearchTransparency);
            else SearchTransparency = GStates[Index];

            return SearchTransparency;
        }
示例#4
0
 public static void SaveKey(TPdfStream DataStream, TPdfToken Tk, int Value)
 {
     SaveKey(DataStream, Tk, PdfConv.LongToString(Value));
 }
示例#5
0
 public static void SaveUnicodeKey(TPdfStream DataStream, TPdfToken Tk, string Value)
 {
     Write(DataStream, TPdfTokens.GetString(Tk) + " " + TPdfTokens.GetString(TPdfToken.OpenString));
     UnicodeWrite(DataStream, Value);
     WriteLine(DataStream, TPdfTokens.GetString(TPdfToken.CloseString));
 }
示例#6
0
 public static void SaveKey(TPdfStream DataStream, TPdfToken Tk, string Value)
 {
     WriteLine(DataStream, String.Format("{0} {1}", TPdfTokens.GetString(Tk), Value));
 }
示例#7
0
 protected TPdfTexture(int aPatternId, TPdfToken aPatternPrefix) : base(aPatternId, aPatternPrefix)
 {
 }
示例#8
0
 protected TPdfPattern(int aPatternId, TPdfToken aPatternPrefix)
 {
     PatternId     = aPatternId;
     PatternPrefix = aPatternPrefix;
 }
示例#9
0
 internal static void SaveToStream(TPdfStream DataStream, TXRefSection XRef, int CatalogId, int PagesId, int BookmarksId, int AcroFormId, int PermsId, TPdfToken PageLayout)
 {
     XRef.SetObjectOffset(CatalogId, DataStream);
     TIndirectRecord.SaveHeader(DataStream, CatalogId);
     TDictionaryRecord.BeginDictionary(DataStream);
     TDictionaryRecord.SaveKey(DataStream, TPdfToken.TypeName, TPdfTokens.GetString(TPdfToken.CatalogName));
     SaveKey(DataStream, TPdfToken.PagesName, TIndirectRecord.GetCallObj(PagesId));
     if (BookmarksId >= 0)
     {
         SaveKey(DataStream, TPdfToken.OutlinesName, TIndirectRecord.GetCallObj(BookmarksId));
     }
     if (PageLayout != TPdfToken.None)
     {
         SaveKey(DataStream, TPdfToken.PageModeName, TPdfTokens.GetString(PageLayout));
     }
     if (AcroFormId >= 0)
     {
         SaveKey(DataStream, TPdfToken.AcroFormName, TIndirectRecord.GetCallObj(AcroFormId));
     }
     if (PermsId >= 0)
     {
         SaveKey(DataStream, TPdfToken.PermsName, TIndirectRecord.GetCallObj(PermsId));
     }
     EndDictionary(DataStream);
     TIndirectRecord.SaveTrailer(DataStream);
 }
示例#10
0
 internal void SelectTransparency(TPdfStream DataStream, int Alpha, TPdfToken aOperator, string aSMask, string aBBox)
 {
     Resources.SelectTransparency(DataStream, Alpha, aOperator, aSMask, aBBox);
 }
示例#11
0
 internal void SelectTransparency(TPdfStream DataStream, int Alpha, TPdfToken aOperator)
 {
     Resources.SelectTransparency(DataStream, Alpha, aOperator);
 }
示例#12
0
 /// <summary>
 /// Returns a token from the TPdfToken enumerator.
 /// </summary>
 /// <param name="Code">Code to search for.</param>
 /// <returns>The associated string.</returns>
 public static string GetString(TPdfToken Code)
 {
     return(Tokens[(int)Code]);
 }
示例#13
0
 internal void SelectTransparency(TPdfStream DataStream, int Alpha, TPdfToken aOperator)
 {
     SelectTransparency(DataStream, Alpha, aOperator, null, null);
 }
示例#14
0
 internal void SelectTransparency(TPdfStream DataStream, int Alpha, TPdfToken aOperator, string aSMask, string aBBox)
 {
     TPdfTransparency Transparency = GetTransparency(Alpha, aOperator, aSMask, aBBox);
     Transparency.Select(DataStream);
 }
示例#15
0
 internal void SelectTransparency(TPdfStream DataStream, int Alpha, TPdfToken aOperator)
 {
     TPdfTransparency Transparency = GetTransparency(Alpha, aOperator, null, null);
     Transparency.Select(DataStream);
 }