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); }
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); } }
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); } }
public static extern bool FPDF_SaveWithVersion(IntPtr doc, [MarshalAs(UnmanagedType.LPStruct)] FPDF_FILEWRITE writer, [MarshalAs(UnmanagedType.I4)] FPDF_SAVE_FLAGS flags, int fileVersion);
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); } }