domains/remove_print_css.js
[app.webkitpdf] / webkitpdf.vala
index 3a4534e..e9ececc 100644 (file)
@@ -2,40 +2,58 @@
 /*
  sudo valac   --vapidir=. --thread  webkitpdf.vala  BrowserWindow.vala  --vapidir=./vapi \
     --pkg glib-2.0 --pkg webkit-1.0 --pkg gtk+-2.0 -o /usr/bin/webkitpdf --target-glib=2.32 
-    
+  
+ sudo valac -D GTK3  --vapidir=. --thread  webkitpdf.vala  BrowserWindow.vala  --vapidir=./vapi \
+    --pkg glib-2.0 --pkg webkit2gtk-4.0 --pkg gtk+-3.0 --pkg gio-2.0 -o /usr/bin/webkitpdf2 --target-glib=2.32 
+  
+  
     
 */
 public class webkitpdf {
  
     public static string? opt_url = null;
        public static uint opt_delay = 0;
+       public static int opt_width = 0;
+       public static int opt_height = 0;
        public static string? opt_target_png = null;
        public static string? opt_target_pdf = null;    
        [CCode (array_length = false, array_null_terminated = true)]
        public static string[] opt_inject_js;
+       public static string? opt_cookies = null;
+       
        const OptionEntry[] options = {
                
-                       { "width", 0, 0, OptionArg.STRING, ref opt_url, "Width (default 500)", null },                  
-                       { "height", 0, 0, OptionArg.STRING, ref opt_url, "Height (PNG only) (default to expand to fit)", null },                                                
+                       { "width", 0, 0, OptionArg.INT, ref opt_width, "Width (default 1200)", null },                  
+                       { "height", 0, 0, OptionArg.INT, ref opt_height, "Height (PNG only) (default to expand to fit)", null },                                                
                        { "url", 0, 0, OptionArg.STRING, ref opt_url, "Url to grab", null },
                        { "delay", 0, 0, OptionArg.INT, ref opt_delay, "Delay before snapshot in seconds", null },
                        { "png", 0, 0, OptionArg.STRING, ref opt_target_png, "File to write (PNG)", null },
                        { "inject", 0, 0, OptionArg.STRING_ARRAY, ref opt_inject_js, "Inject Javascript file(s)", null },
                        { "pdf", 0, 0, OptionArg.STRING, ref opt_target_pdf, "File to write (PDF)", null },
+                       { "cookies", 0, 0, OptionArg.STRING, ref opt_cookies, "Inject Cookie string", null },
                        { null }
-       };
+       }; 
     public static int main(string[] args) 
     {
         Gtk.init(ref args);
-                
+               
+               
+#if GTK3               
+       // this is a horrific hack from https://bugs.webkit.org/show_bug.cgi?id=128674
+               Environment.unset_variable("GNOME_DESKTOP_SESSION_ID");
+               Environment.unset_variable("DESKTOP_SESSION");          
+               // it should now fallb ack to http prox!?
+               
+               
+#else
                unowned string proxy = Environment.get_variable ("http_proxy");
                if (proxy != null && proxy.length > 0) {
                        var sess = WebKit.get_default_session();
                        sess.proxy_uri = new Soup.URI(proxy);
                }
-               
+#endif         
         var opt_context = new OptionContext ("webkitpdf");
-               
+       
                
                try {
                        opt_context.set_help_enabled (true);
@@ -49,6 +67,28 @@ public class webkitpdf {
                 throw new OptionError.BAD_VALUE("missing pdf or png filename");
             }
             
+        
+            stdout.printf ( """Width: %d
+            Height: %d
+            URL: %s
+            Delay: %d
+            png: %s
+            inject: %s
+            PDF: %s
+            Cookie: %s
+            """,
+              opt_width,
+              opt_height,
+              opt_url,
+              (int) opt_delay,
+              opt_target_png == null ? "--empty--" : opt_target_png,
+              opt_inject_js.length < 1? "--empty--" : string.joinv(", ", opt_inject_js),
+              opt_target_pdf == null ? "--empty--" : opt_target_pdf,
+              opt_cookies == null ? "--empty--" : opt_cookies              
+              
+            
+            );
+            
 
                } catch (OptionError e) {
                        stdout.printf ("error: %s\n", e.message);
@@ -79,4 +119,5 @@ public class webkitpdf {
 }
 
 
  
\ No newline at end of file