Ejemplo n.º 1
0
        public static bool FPDF_SaveWithVersion(IntPtr doc, Stream output, FPDF_SAVE_FLAGS flags, int fileVersion)
        {
            IntPtr         streamPtr = Marshal.GetIUnknownForObject(output);
            FPDF_FILEWRITE write     = new FPDF_FILEWRITE
            {
                stream     = streamPtr,
                version    = 1,
                WriteBlock = Marshal.GetFunctionPointerForDelegate(_saveBlockDelegate)
            };

            bool result = false;

            lock (LockString)
            {
                result = Imports.FPDF_SaveWithVersion(doc, write, flags, fileVersion);
            }
            Marshal.Release(streamPtr);
            output.Flush();
            return(result);
        }
Ejemplo n.º 2
0
        public static bool FPDF_SaveWithVersion(IntPtr doc, Stream output, FPDF_SAVE_FLAGS flags, int fileVersion)
        {
            int id = StreamManager.Register(output);

            try
            {
                var write = new FPDF_FILEWRITE
                {
                    stream     = (IntPtr)id,
                    version    = 1,
                    WriteBlock = Marshal.GetFunctionPointerForDelegate(_saveBlockDelegate)
                };

                lock (LockString)
                {
                    return(Imports.FPDF_SaveWithVersion(doc, write, flags, fileVersion));
                }
            }
            finally
            {
                StreamManager.Unregister(id);
            }
        }
Ejemplo n.º 3
0
        public static bool FPDF_SaveAsCopy(IntPtr doc, Stream output, FPDF_SAVE_FLAGS flags)
        {
            int id = StreamDictionary.Add(output);

            try
            {
                var write = new FPDF_FILEWRITE
                {
                    stream     = (IntPtr)id,
                    version    = 1,
                    WriteBlock = Marshal.GetFunctionPointerForDelegate(_saveBlockDelegate)
                };

                lock (_mutex)
                {
                    return(API.FPDF_SaveAsCopy(doc, write, flags));
                }
            }
            finally
            {
                StreamDictionary.Remove(id);
            }
        }
Ejemplo n.º 4
0
 public static extern bool FPDF_SaveWithVersion(IntPtr doc,
                                                [MarshalAs(UnmanagedType.LPStruct)] FPDF_FILEWRITE writer,
                                                [MarshalAs(UnmanagedType.I4)] FPDF_SAVE_FLAGS flags,
                                                int fileVersion);
Ejemplo n.º 5
0
 public static extern bool FPDF_SaveAsCopy(IntPtr doc,
                                           [MarshalAs(UnmanagedType.LPStruct)] FPDF_FILEWRITE writer,
                                           [MarshalAs(UnmanagedType.I4)] FPDF_SAVE_FLAGS flag);
        public static bool FPDF_SaveWithVersion(IntPtr doc, Stream output, FPDF_SAVE_FLAGS flags, int fileVersion)
        {
            int id = StreamManager.Register(output);

            try
            {
                var write = new FPDF_FILEWRITE
                {
                    stream = (IntPtr)id,
                    version = 1,
                    WriteBlock = Marshal.GetFunctionPointerForDelegate(_saveBlockDelegate)
                };

                lock (LockString)
                {
                    return Imports.FPDF_SaveWithVersion(doc, write, flags, fileVersion);
                }
            }
            finally
            {
                StreamManager.Unregister(id);
            }
        }